MFV r319743: 8108 zdb -l fails to read labels 2 and 3
illumos/illumos-gate@22c8b9583d
22c8b9583d
https://www.illumos.org/issues/8108
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Reviewed by: Andrew Stormont <andyjstormont@gmail.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Yuri Pankov <yuri.pankov@nexenta.com>
MFC after: 3 weeks
This commit is contained in:
parent
b10154d415
commit
39c93f3da3
@ -2186,24 +2186,29 @@ dump_label(const char *dev)
|
||||
|
||||
(void) snprintf(path, sizeof (path), "%s%s", ZFS_RDISK_ROOTD,
|
||||
dev);
|
||||
if ((s = strrchr(dev, 's')) == NULL || !isdigit(*(s + 1)))
|
||||
if (((s = strrchr(dev, 's')) == NULL &&
|
||||
(s = strchr(dev, 'p')) == NULL) ||
|
||||
!isdigit(*(s + 1)))
|
||||
(void) strlcat(path, "s0", sizeof (path));
|
||||
}
|
||||
|
||||
if (stat64(path, &statbuf) != 0) {
|
||||
(void) printf("failed to stat '%s': %s\n", path,
|
||||
if ((fd = open64(path, O_RDONLY)) < 0) {
|
||||
(void) fprintf(stderr, "cannot open '%s': %s\n", path,
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (S_ISBLK(statbuf.st_mode)) {
|
||||
(void) printf("cannot use '%s': character device required\n",
|
||||
path);
|
||||
if (fstat64(fd, &statbuf) != 0) {
|
||||
(void) fprintf(stderr, "failed to stat '%s': %s\n", path,
|
||||
strerror(errno));
|
||||
(void) close(fd);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((fd = open64(path, O_RDONLY)) < 0) {
|
||||
(void) printf("cannot open '%s': %s\n", path, strerror(errno));
|
||||
if (S_ISBLK(statbuf.st_mode)) {
|
||||
(void) fprintf(stderr,
|
||||
"cannot use '%s': character device required\n", path);
|
||||
(void) close(fd);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user