diff options
author | Brian Behlendorf <[email protected]> | 2018-06-13 10:20:58 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2018-06-13 10:20:58 -0700 |
commit | 232dd8b956703bcc774524e78110d13de93dd5bd (patch) | |
tree | eef1ccd56048f8f63121229dc21a3de44827209f /lib/libefi | |
parent | ab24877bd3459c84a9220a06acbbbfbb337e59a9 (diff) |
Fix efi_get_info() zvol detection
Partition detection for zvol devices was not working correctly
resulting inconsistent partitioning behavior when layering pools
on top of zvols. This isn't a supported configuration but we'd
still like it to work properly.
Reviewed-by: George Melikov <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #7624
Diffstat (limited to 'lib/libefi')
-rw-r--r-- | lib/libefi/rdwr_efi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/libefi/rdwr_efi.c b/lib/libefi/rdwr_efi.c index 4b78cc58e..08237237a 100644 --- a/lib/libefi/rdwr_efi.c +++ b/lib/libefi/rdwr_efi.c @@ -278,8 +278,9 @@ efi_get_info(int fd, struct dk_cinfo *dki_info) } else if ((strncmp(dev_path, "/dev/zd", 7) == 0)) { strcpy(dki_info->dki_cname, "zd"); dki_info->dki_ctype = DKC_MD; - rval = sscanf(dev_path, "/dev/%[a-zA-Z]%hu", - dki_info->dki_dname, + strcpy(dki_info->dki_dname, "zd"); + rval = sscanf(dev_path, "/dev/zd%[0-9]p%hu", + dki_info->dki_dname + 2, &dki_info->dki_partition); } else if ((strncmp(dev_path, "/dev/dm-", 8) == 0)) { strcpy(dki_info->dki_cname, "pseudo"); |