summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/fs/zfs/vdev_disk.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/usr/src/uts/common/fs/zfs/vdev_disk.c b/usr/src/uts/common/fs/zfs/vdev_disk.c
index 98b4d23d6e..fe4e97524e 100644
--- a/usr/src/uts/common/fs/zfs/vdev_disk.c
+++ b/usr/src/uts/common/fs/zfs/vdev_disk.c
@@ -608,13 +608,15 @@ vdev_disk_read_rootlabel(char *devpath, char *devid, nvlist_t **config)
uint64_t s, size;
int l;
ddi_devid_t tmpdevid;
- int error = 0;
+ int error;
char *minor_name;
/*
* Read the device label and build the nvlist.
*/
- if (devid != NULL && ddi_devid_str_decode(devid, &tmpdevid,
+ error = ldi_open_by_name(devpath, FREAD, kcred, &vd_lh, zfs_li);
+
+ if (error && devid != NULL && ddi_devid_str_decode(devid, &tmpdevid,
&minor_name) == 0) {
error = ldi_open_by_devid(tmpdevid, minor_name,
spa_mode, kcred, &vd_lh, zfs_li);
@@ -622,8 +624,7 @@ vdev_disk_read_rootlabel(char *devpath, char *devid, nvlist_t **config)
ddi_devid_str_free(minor_name);
}
- if (error && (error = ldi_open_by_name(devpath, FREAD, kcred,
- &vd_lh, zfs_li)) != 0)
+ if (error)
return (error);
if (ldi_get_size(vd_lh, &s)) {