From: Brian Behlendorf Date: Wed, 3 Jul 2013 16:16:46 +0000 (-0700) Subject: Fix parse_dataset error handling X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=zfs.git;a=commitdiff_plain;h=c76955eaa5477a71f711e6865a923e7055f8b3cb 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 Closes #1560 --- diff --git a/cmd/mount_zfs/mount_zfs.c b/cmd/mount_zfs/mount_zfs.c index 27a9014..4db33ed 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: /*