diff options
author | Brian Behlendorf <[email protected]> | 2013-07-03 09:16:46 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2013-07-03 09:20:52 -0700 |
commit | c76955eaa5477a71f711e6865a923e7055f8b3cb (patch) | |
tree | 5a270d939fbd7bb56b4dd852d8f6ba99ed0a98b5 /cmd | |
parent | 294f68063b49c06d3118d51016811063e69cf97a (diff) |
Fix parse_dataset error handling
A mount failure was accidentally introduced by commit 0c1171d
which reworked the parse_dataset() function to read pool names
from devices. The error case where a label is read from the
device but the pool name/value pair doesn't exist was not
handled properly. In this case we should fall back to the
previous behavior.
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #1560
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/mount_zfs/mount_zfs.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/cmd/mount_zfs/mount_zfs.c b/cmd/mount_zfs/mount_zfs.c index 27a9014b3..4db33ed69 100644 --- a/cmd/mount_zfs/mount_zfs.c +++ b/cmd/mount_zfs/mount_zfs.c @@ -246,11 +246,13 @@ parse_dataset(char *dataset) error = nvlist_lookup_string(config, ZPOOL_CONFIG_POOL_NAME, &name); - if (error == 0) + if (error) { + nvlist_free(config); + } else { dataset = strdup(name); - - nvlist_free(config); - return (dataset); + nvlist_free(config); + return (dataset); + } } out: /* |