git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kmem_zalloc(..., KM_SLEEP) will never fail
[zfs.git]
/
module
/
zfs
/
zfs_vfsops.c
diff --git
a/module/zfs/zfs_vfsops.c
b/module/zfs/zfs_vfsops.c
index
620e39b
..
602c332
100644
(file)
--- a/
module/zfs/zfs_vfsops.c
+++ b/
module/zfs/zfs_vfsops.c
@@
-1056,10
+1056,12
@@
zfs_sb_teardown(zfs_sb_t *zsb, boolean_t unmounting)
}
/*
}
/*
- * Drain the iput_taskq to ensure all active references to the
+ * If someone has not already unmounted this file system,
+ * drain the iput_taskq to ensure all active references to the
* zfs_sb_t have been handled only then can it be safely destroyed.
*/
* zfs_sb_t have been handled only then can it be safely destroyed.
*/
- taskq_wait(dsl_pool_iput_taskq(dmu_objset_pool(zsb->z_os)));
+ if (zsb->z_os)
+ taskq_wait(dsl_pool_iput_taskq(dmu_objset_pool(zsb->z_os)));
/*
* Close the zil. NB: Can't close the zil while zfs_inactive
/*
* Close the zil. NB: Can't close the zil while zfs_inactive
@@
-1480,10
+1482,11
@@
bail:
if (err) {
/*
if (err) {
/*
- * Since we couldn't reopen zfs_sb_t
, forc
e
- * unmount this file system.
+ * Since we couldn't reopen zfs_sb_t
or, setup th
e
+ *
sa framework, force
unmount this file system.
*/
*/
- (void) zfs_umount(zsb->z_sb);
+ if (zsb->z_os)
+ (void) zfs_umount(zsb->z_sb);
}
return (err);
}
}
return (err);
}
@@
-1537,7
+1540,7
@@
zfs_set_version(zfs_sb_t *zsb, uint64_t newvers)
error = zap_add(os, MASTER_NODE_OBJ,
ZFS_SA_ATTRS, 8, 1, &sa_obj, tx);
error = zap_add(os, MASTER_NODE_OBJ,
ZFS_SA_ATTRS, 8, 1, &sa_obj, tx);
- ASSERT
3U(error, ==, 0
);
+ ASSERT
0(error
);
VERIFY(0 == sa_set_sa_object(os, sa_obj));
sa_register_update_callback(os, zfs_sa_upgrade);
VERIFY(0 == sa_set_sa_object(os, sa_obj));
sa_register_update_callback(os, zfs_sa_upgrade);