diff options
author | phk <phk@FreeBSD.org> | 2003-09-29 07:44:23 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-09-29 07:44:23 +0000 |
commit | 9e3e052c167f43bc18eb06f9a36fe8e286f9991b (patch) | |
tree | 177229fc7cbcf834fc02d800b2bd8c6b9f15aebf /sys/geom/geom_disk.c | |
parent | 6ed7cb093017cd1ad878d4463d1fd91ec771fcfb (diff) | |
download | FreeBSD-src-9e3e052c167f43bc18eb06f9a36fe8e286f9991b.zip FreeBSD-src-9e3e052c167f43bc18eb06f9a36fe8e286f9991b.tar.gz |
Return ENODEV in case the driver has no dump routine.
Diffstat (limited to 'sys/geom/geom_disk.c')
-rw-r--r-- | sys/geom/geom_disk.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/geom/geom_disk.c b/sys/geom/geom_disk.c index 11f6b46..8bb9850 100644 --- a/sys/geom/geom_disk.c +++ b/sys/geom/geom_disk.c @@ -159,6 +159,10 @@ g_disk_kerneldump(struct bio *bp, struct disk *dp) gp = bp->bio_to->geom; g_trace(G_T_TOPOLOGY, "g_disk_kernedump(%s, %jd, %jd)", gp->name, (intmax_t)gkd->offset, (intmax_t)gkd->length); + if (dp->d_dump == NULL) { + g_io_deliver(bp, ENODEV); + return; + } di.dumper = dp->d_dump; di.priv = dp; di.blocksize = dp->d_sectorsize; |