diff options
author | pjd <pjd@FreeBSD.org> | 2009-09-07 14:44:04 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2009-09-07 14:44:04 +0000 |
commit | 34877df084d628788fc532ae20091114a3dcdfc1 (patch) | |
tree | 1b2d83473a42804ae4c8e814dc6bb07fd67e3741 /cddl | |
parent | 762f5b033c4162d150391141a97e3caa2c2e47c4 (diff) | |
download | FreeBSD-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.c | 8 |
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)); |