tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
fix getdisksize() for zfs zvols
Hi,
cgd(4) currently cannot run on top of zvol because getdisksize() fails
on zvols. Would this patch be acceptable for now? I think the block
size needs to come from somewhere else, but it doesn't look like our
zfs currently has support for setting e.g. ashift=12 anyway.
--- sys/kern/subr_disk_open.c 20 Feb 2019 10:02:51 -0000 1.14
+++ sys/kern/subr_disk_open.c 9 Nov 2019 11:30:04 -0000
@@ -105,8 +105,10 @@ getdisksize(struct vnode *vp, uint64_t *
*/
error = VOP_IOCTL(vp, DIOCGWEDGEINFO, &dkw, FREAD, NOCRED);
if (error == 0) {
- pdk = disk_find(dkw.dkw_parent);
- if (pdk != NULL) {
+ if (!strcmp("ZFS", dkw.dkw_parent)) {
+ secsize = DEV_BSIZE; /* XXX */
+ numsec = dkw.dkw_size;
+ } else if ((pdk = disk_find(dkw.dkw_parent)) != NULL) {
secsize = DEV_BSIZE << pdk->dk_blkshift;
numsec = dkw.dkw_size;
} else
Kind regards,
-Tobias
Home |
Main Index |
Thread Index |
Old Index