summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs
diff options
context:
space:
mode:
authorDan McDonald <danmcd@joyent.com>2020-12-02 10:19:05 -0500
committerDan McDonald <danmcd@joyent.com>2020-12-02 10:19:06 -0500
commitd79b46fa6a6b38bd45268af896a043dde714b38a (patch)
tree60bcbe653139d492d2bfcc23141f3c039457bf38 /usr/src/uts/common/fs
parent99f76d09704e2a55d2d5fda310f907fdfbdf0684 (diff)
parent7b4214534ccdf6f8aa6e566d7501aab328c72e84 (diff)
downloadillumos-joyent-release-20201203.tar.gz
[illumos-gate merge]release-20201203
commit 7b4214534ccdf6f8aa6e566d7501aab328c72e84 13324 struct dk_minfo_ext size differences trigger SSP in libfdisk commit 63f9f2ff473e9cb7f455f032fe3d04a95ec4b537 13332 loader: iterate consoles to draw loader menu screen Conflicts: usr/src/boot/sys/boot/forth/support.4th usr/src/boot/sys/boot/forth/Makefile.inc
Diffstat (limited to 'usr/src/uts/common/fs')
-rw-r--r--usr/src/uts/common/fs/zfs/zvol.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/zfs/zvol.c b/usr/src/uts/common/fs/zfs/zvol.c
index 2495fb015d..efc2ba6c2d 100644
--- a/usr/src/uts/common/fs/zfs/zvol.c
+++ b/usr/src/uts/common/fs/zfs/zvol.c
@@ -1767,6 +1767,7 @@ zvol_ioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *cr, int *rvalp)
case DKIOCGMEDIAINFOEXT:
{
struct dk_minfo_ext dkmext;
+ size_t len;
bzero(&dkmext, sizeof (dkmext));
dkmext.dki_lbsize = 1U << zv->zv_min_bs;
@@ -1774,7 +1775,17 @@ zvol_ioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *cr, int *rvalp)
dkmext.dki_capacity = zv->zv_volsize >> zv->zv_min_bs;
dkmext.dki_media_type = DK_UNKNOWN;
mutex_exit(&zfsdev_state_lock);
- if (ddi_copyout(&dkmext, (void *)arg, sizeof (dkmext), flag))
+
+ switch (ddi_model_convert_from(flag & FMODELS)) {
+ case DDI_MODEL_ILP32:
+ len = sizeof (struct dk_minfo_ext32);
+ break;
+ default:
+ len = sizeof (struct dk_minfo_ext);
+ break;
+ }
+
+ if (ddi_copyout(&dkmext, (void *)arg, len, flag))
error = SET_ERROR(EFAULT);
return (error);
}