diff options
author | ahrens <none@none> | 2007-11-09 15:28:25 -0800 |
---|---|---|
committer | ahrens <none@none> | 2007-11-09 15:28:25 -0800 |
commit | 4ccbb6e737373468bb9dc1709618384cce4c9f92 (patch) | |
tree | 75245c0989a3f69adcd47836485e21f96f76abd5 /usr/src/uts/common/fs/zfs/zfs_vfsops.c | |
parent | 17de24c96dc16cca8f0fe00c1c4a756b2d8d4971 (diff) | |
download | illumos-gate-4ccbb6e737373468bb9dc1709618384cce4c9f92.tar.gz |
6421210 zfs rollback without unmounting
6597358 assertion failed in dsl_dir_stats()
6623982 stack overflow due to zfs_ioc_recv()
6626110 recvflags_t could use a comment
6626117 z_dbuf_held is redundant (use z_dbuf != NULL)
Diffstat (limited to 'usr/src/uts/common/fs/zfs/zfs_vfsops.c')
-rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_vfsops.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/usr/src/uts/common/fs/zfs/zfs_vfsops.c b/usr/src/uts/common/fs/zfs/zfs_vfsops.c index 86b88ac19c..53ba388bd4 100644 --- a/usr/src/uts/common/fs/zfs/zfs_vfsops.c +++ b/usr/src/uts/common/fs/zfs/zfs_vfsops.c @@ -1259,13 +1259,13 @@ zfsvfs_teardown(zfsvfs_t *zfsvfs, boolean_t unmounting) for (zp = list_head(&zfsvfs->z_all_znodes); zp != &markerzp; zp = nextzp) { nextzp = list_next(&zfsvfs->z_all_znodes, zp); - if (zp->z_dbuf_held) { + if (zp->z_dbuf) { /* dbufs should only be held when force unmounting */ - zp->z_dbuf_held = 0; mutex_exit(&zfsvfs->z_znodes_lock); dmu_buf_rele(zp->z_dbuf, NULL); - /* Start again */ + zp->z_dbuf = NULL; mutex_enter(&zfsvfs->z_znodes_lock); + /* Start again */ nextzp = list_head(&zfsvfs->z_all_znodes); } else { list_remove(&zfsvfs->z_all_znodes, zp); @@ -1529,7 +1529,6 @@ zfs_resume_fs(zfsvfs_t *zfsvfs, const char *osname, int mode) mutex_enter(&zfsvfs->z_znodes_lock); for (zp = list_head(&zfsvfs->z_all_znodes); zp; zp = list_next(&zfsvfs->z_all_znodes, zp)) { - ASSERT(!zp->z_dbuf_held); (void) zfs_rezget(zp); } mutex_exit(&zfsvfs->z_znodes_lock); |