summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-11-07 16:25:49 -0800
committerBrian Behlendorf <[email protected]>2011-11-08 10:18:40 -0800
commit591fb62f19ee2431983a4cbeb0d200b1b8e7daf5 (patch)
treef6346760661be87f0747e3799686e7c5f78ad786
parentae6ba3dbe618bb7dbc46f2a3fb54c58243835d6b (diff)
Disown dataset in zfs_sb_create()
Fix an unlikely failure cause in zfs_sb_create() which could leave the dataset owned on error and thus unavailable until after a reboot. Disown the dataset if SA are expected but are in fact missing. Signed-off-by: Brian Behlendorf <[email protected]>
-rw-r--r--module/zfs/zfs_vfsops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/module/zfs/zfs_vfsops.c b/module/zfs/zfs_vfsops.c
index b115dcd66..ed847f130 100644
--- a/module/zfs/zfs_vfsops.c
+++ b/module/zfs/zfs_vfsops.c
@@ -646,7 +646,7 @@ zfs_sb_create(const char *osname, zfs_sb_t **zsbp)
error = zap_lookup(os, MASTER_NODE_OBJ, ZFS_SA_ATTRS, 8, 1,
&sa_obj);
if (error)
- return (error);
+ goto out;
} else {
/*
* Pre SA versions file systems should never touch