diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-08-28 12:02:36 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-08-28 12:02:36 +0000 |
commit | 8854c9be792aa0a2df2e16e3e0797838559f16c6 (patch) | |
tree | b4d57064a444fe14d44342cd67f4b2e8f2e3f000 /usr/src/uts/common | |
parent | fa1252de73f343f36bf1e6f366902ba96c480aaa (diff) | |
parent | c5806743f70246f7f708e57514b9103a6291d629 (diff) | |
download | illumos-joyent-release-20190829.tar.gz |
[illumos-gate merge]release-20190829
commit c5806743f70246f7f708e57514b9103a6291d629
11622 clean up rarer mandoc lint warnings
commit 6ae02400ec7326832d2e19e92b4174ec778b2b9f
11620 strtod man page typo equence
commit 0463c8009260e445fd1885cfaf98e04a586d495b
11618 Use exec_attr instead of suid for smbfs mount and unmount
commit efe44a0312f417787c2d6992582ad06b1b98cd8d
11608 add DKIOC ioctl to report drive UNMAP support
Conflicts:
usr/src/cmd/fs.d/mount.c
Diffstat (limited to 'usr/src/uts/common')
-rw-r--r-- | usr/src/uts/common/fs/zfs/zvol.c | 11 | ||||
-rw-r--r-- | usr/src/uts/common/io/scsi/targets/sd.c | 13 | ||||
-rw-r--r-- | usr/src/uts/common/sys/dkio.h | 8 |
3 files changed, 30 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/zfs/zvol.c b/usr/src/uts/common/fs/zfs/zvol.c index b2d212dc64..1e8db36b0e 100644 --- a/usr/src/uts/common/fs/zfs/zvol.c +++ b/usr/src/uts/common/fs/zfs/zvol.c @@ -1762,7 +1762,7 @@ zvol_ioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *cr, int *rvalp) { zvol_state_t *zv; struct dk_callback *dkc; - int error = 0; + int i, error = 0; locked_range_t *lr; mutex_enter(&zfsdev_state_lock); @@ -1988,6 +1988,15 @@ zvol_ioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *cr, int *rvalp) return (error); } + case DKIOC_CANFREE: + i = zvol_unmap_enabled ? 1 : 0; + if (ddi_copyout(&i, (void *)arg, sizeof (int), flag) != 0) { + error = EFAULT; + } else { + error = 0; + } + break; + default: error = SET_ERROR(ENOTTY); break; diff --git a/usr/src/uts/common/io/scsi/targets/sd.c b/usr/src/uts/common/io/scsi/targets/sd.c index f998d9ef11..eb694bd3bb 100644 --- a/usr/src/uts/common/io/scsi/targets/sd.c +++ b/usr/src/uts/common/io/scsi/targets/sd.c @@ -26,7 +26,7 @@ * Copyright (c) 2011 Bayard G. Bell. All rights reserved. * Copyright (c) 2012, 2016 by Delphix. All rights reserved. * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. - * Copyright 2016 Joyent, Inc. + * Copyright 2019 Joyent, Inc. * Copyright 2017 Nexenta Systems, Inc. * Copyright 2019 Racktop Systems */ @@ -22712,6 +22712,7 @@ sdioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *cred_p, int *rval_p) case DKIOCGMEDIAINFO: case DKIOCGMEDIAINFOEXT: case DKIOCSOLIDSTATE: + case DKIOC_CANFREE: case MHIOCENFAILFAST: case MHIOCSTATUS: case MHIOCTKOWN: @@ -23561,6 +23562,16 @@ skip_ready_valid: } break; + case DKIOC_CANFREE: + SD_TRACE(SD_LOG_IOCTL, un, "DKIOC_CANFREE\n"); + i = (un->un_thin_flags & SD_THIN_PROV_ENABLED) ? 1 : 0; + if (ddi_copyout(&i, (void *)arg, sizeof (int), flag) != 0) { + err = EFAULT; + } else { + err = 0; + } + break; + case DKIOCGETWCE: { int wce; diff --git a/usr/src/uts/common/sys/dkio.h b/usr/src/uts/common/sys/dkio.h index 7a9bbc3f15..9d88731c5d 100644 --- a/usr/src/uts/common/sys/dkio.h +++ b/usr/src/uts/common/sys/dkio.h @@ -24,6 +24,7 @@ * * Copyright 2017 Nexenta Systems, Inc. All rights reserved. * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. + * Copyright 2019 Joyent, Inc. */ #ifndef _SYS_DKIO_H @@ -543,6 +544,13 @@ typedef struct dkioc_free_list_s { (sizeof (dkioc_free_list_t) + \ (num_exts - 1) * sizeof (dkioc_free_list_ext_t)) +/* + * ioctl to determine if free (e.g. SCSI UNMAP) is supported. + * See FDIOC ioctls for why we're not using '51' here. + */ +#define DKIOC_CANFREE (DKIOC|60) + + #ifdef __cplusplus } #endif |