summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/zfs_vfsops.c
diff options
context:
space:
mode:
authorahrens <none@none>2007-11-09 15:28:25 -0800
committerahrens <none@none>2007-11-09 15:28:25 -0800
commit4ccbb6e737373468bb9dc1709618384cce4c9f92 (patch)
tree75245c0989a3f69adcd47836485e21f96f76abd5 /usr/src/uts/common/fs/zfs/zfs_vfsops.c
parent17de24c96dc16cca8f0fe00c1c4a756b2d8d4971 (diff)
downloadillumos-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.c7
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);