summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2014-10-26 07:40:37 +0000
committermav <mav@FreeBSD.org>2014-10-26 07:40:37 +0000
commit7e130945aea37a833c1cb8305b118abc2192b48b (patch)
treee18769d40a4dff9cf726856a86f2dbcb976856cd
parentf0db1caf67383dba29d4f10235dad3865066e0f5 (diff)
downloadFreeBSD-src-7e130945aea37a833c1cb8305b118abc2192b48b.zip
FreeBSD-src-7e130945aea37a833c1cb8305b118abc2192b48b.tar.gz
Add "rpm" and "formfactor" LUN options to match istgt functionality.
MFC after: 1 week
-rw-r--r--sys/cam/ctl/ctl.c15
-rw-r--r--usr.sbin/ctladm/ctladm.88
2 files changed, 21 insertions, 2 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
index 1b9d136..ffe2739 100644
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -10207,6 +10207,8 @@ ctl_inquiry_evpd_bdc(struct ctl_scsiio *ctsio, int alloc_len)
{
struct scsi_vpd_block_device_characteristics *bdc_ptr;
struct ctl_lun *lun;
+ const char *value;
+ u_int i;
lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr;
@@ -10239,7 +10241,18 @@ ctl_inquiry_evpd_bdc(struct ctl_scsiio *ctsio, int alloc_len)
bdc_ptr->device = (SID_QUAL_LU_OFFLINE << 5) | T_DIRECT;
bdc_ptr->page_code = SVPD_BDC;
scsi_ulto2b(sizeof(*bdc_ptr) - 4, bdc_ptr->page_length);
- scsi_ulto2b(SVPD_NON_ROTATING, bdc_ptr->medium_rotation_rate);
+ if (lun != NULL &&
+ (value = ctl_get_opt(&lun->be_lun->options, "rpm")) != NULL)
+ i = strtol(value, NULL, 0);
+ else
+ i = SVPD_NON_ROTATING;
+ scsi_ulto2b(i, bdc_ptr->medium_rotation_rate);
+ if (lun != NULL &&
+ (value = ctl_get_opt(&lun->be_lun->options, "formfactor")) != NULL)
+ i = strtol(value, NULL, 0);
+ else
+ i = 0;
+ bdc_ptr->wab_wac_ff = (i & 0x0f);
bdc_ptr->flags = SVPD_FUAB | SVPD_VBULS;
ctsio->scsi_status = SCSI_STATUS_OK;
diff --git a/usr.sbin/ctladm/ctladm.8 b/usr.sbin/ctladm/ctladm.8
index 5e69dd2..3a1dc11 100644
--- a/usr.sbin/ctladm/ctladm.8
+++ b/usr.sbin/ctladm/ctladm.8
@@ -34,7 +34,7 @@
.\" $Id: //depot/users/kenm/FreeBSD-test2/usr.sbin/ctladm/ctladm.8#3 $
.\" $FreeBSD$
.\"
-.Dd October 12, 2014
+.Dd October 26, 2014
.Dt CTLADM 8
.Os
.Sh NAME
@@ -995,6 +995,12 @@ command sequence order shall be explicitly handled by the application
client through the selection of appropriate commands and task attributes.
The default value is "restricted". It improves data integrity, but may
introduce some additional delays.
+.It Va rpm
+Specifies medium rotation rate of the device: 0 -- not reported,
+1 -- non-rotating (SSD), >1024 -- value in revolutions per minute.
+.It Va formfactor
+Specifies nominal form factor of the device: 0 -- not reported, 1 -- 5.25",
+2 -- 3.5", 3 -- 2.5", 4 -- 1.8", 5 -- less then 1.8".
.It Va unmap
Set to "on", enables UNMAP support for the LUN, if supported by the backend.
.It Va writecache
OpenPOWER on IntegriCloud