diff --git a/sys/dev/disk/dm/dm_pdev.c b/sys/dev/disk/dm/dm_pdev.c --- a/sys/dev/disk/dm/dm_pdev.c +++ b/sys/dev/disk/dm/dm_pdev.c @@ -98,13 +98,15 @@ * This function adjusts the dumping offset that is passed to the next * dev_ddump() so it is correct for that underlying device. */ -off_t -dm_pdev_correct_dump_offset(dm_pdev_t *pdev, off_t offset) -{ - off_t noffset; - - noffset = pdev->pdev_pinfo.reserved_blocks + - pdev->pdev_pinfo.media_offset / pdev->pdev_pinfo.media_blksize; +off_t +dm_pdev_correct_dump_offset(dm_pdev_t *pdev, off_t offset) +{ + off_t noffset; + + if (pdev->pdev_pinfo.media_blksize == 0) + return offset; + noffset = pdev->pdev_pinfo.reserved_blocks + + pdev->pdev_pinfo.media_offset / pdev->pdev_pinfo.media_blksize; noffset *= DEV_BSIZE; noffset += offset;