summaryrefslogtreecommitdiffstats
path: root/cddl
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2009-09-07 14:44:04 +0000
committerpjd <pjd@FreeBSD.org>2009-09-07 14:44:04 +0000
commit34877df084d628788fc532ae20091114a3dcdfc1 (patch)
tree1b2d83473a42804ae4c8e814dc6bb07fd67e3741 /cddl
parent762f5b033c4162d150391141a97e3caa2c2e47c4 (diff)
downloadFreeBSD-src-34877df084d628788fc532ae20091114a3dcdfc1.zip
FreeBSD-src-34877df084d628788fc532ae20091114a3dcdfc1.tar.gz
Teach zdb(8) how to obtain GEOM provider size.
PR: kern/133134 Reported by: Philipp Wuensche <cryx-freebsd@h3q.com> MFC after: 3 days
Diffstat (limited to 'cddl')
-rw-r--r--cddl/contrib/opensolaris/cmd/zdb/zdb.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/cddl/contrib/opensolaris/cmd/zdb/zdb.c b/cddl/contrib/opensolaris/cmd/zdb/zdb.c
index 16b2787..9e1e106 100644
--- a/cddl/contrib/opensolaris/cmd/zdb/zdb.c
+++ b/cddl/contrib/opensolaris/cmd/zdb/zdb.c
@@ -1322,6 +1322,14 @@ dump_label(const char *dev)
exit(1);
}
+ if (S_ISCHR(statbuf.st_mode)) {
+ if (ioctl(fd, DIOCGMEDIASIZE, &statbuf.st_size) == -1) {
+ (void) printf("failed to get size of '%s': %s\n", dev,
+ strerror(errno));
+ exit(1);
+ }
+ }
+
psize = statbuf.st_size;
psize = P2ALIGN(psize, (uint64_t)sizeof (vdev_label_t));
OpenPOWER on IntegriCloud