Disown dataset in zfs_sb_create()
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 8 Nov 2011 00:25:49 +0000 (16:25 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 8 Nov 2011 18:18:40 +0000 (10:18 -0800)
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 <behlendorf1@llnl.gov>
module/zfs/zfs_vfsops.c

index b115dcd..ed847f1 100644 (file)
@@ -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