summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2014-03-13 19:26:26 +0000
committermav <mav@FreeBSD.org>2014-03-13 19:26:26 +0000
commita99f629278366b03dd62a99c6ec0540e00947d4c (patch)
treef5b7bcac9543f621b39b6521dccc8727906e774e
parent017a2624cb132ade718922de0f5448a70b602021 (diff)
downloadFreeBSD-src-a99f629278366b03dd62a99c6ec0540e00947d4c.zip
FreeBSD-src-a99f629278366b03dd62a99c6ec0540e00947d4c.tar.gz
Report ZVOL block size as GEOM stripesize.
MFC after: 2 weeks
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
index 64c97c9..5e50f3f 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
@@ -925,12 +925,16 @@ zvol_open(struct g_provider *pp, int flag, int count)
return (SET_ERROR(ENXIO));
}
- if (zv->zv_total_opens == 0)
+ if (zv->zv_total_opens == 0) {
err = zvol_first_open(zv);
- if (err) {
- if (locked)
- mutex_exit(&spa_namespace_lock);
- return (err);
+ if (err) {
+ if (locked)
+ mutex_exit(&spa_namespace_lock);
+ return (err);
+ }
+ pp->mediasize = zv->zv_volsize;
+ pp->stripeoffset = 0;
+ pp->stripesize = zv->zv_volblocksize;
}
if ((flag & FWRITE) && (zv->zv_flags & ZVOL_RDONLY)) {
err = SET_ERROR(EROFS);
OpenPOWER on IntegriCloud