Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley: :This series consists of the usual driver updates (qla2xxx, ufs, zfcp, target, scsi_debug, lpfc, qedi, qedf, hisi_sas, mpt3sas) plus a host of other minor updates. There are no major core changes in this series apart from a refactoring in scsi_lib.c" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (207 commits) scsi: ufs: ti-j721e-ufs: Fix unwinding of pm_runtime changes scsi: cxgb3i: Fix some leaks in init_act_open() scsi: ibmvscsi: Make some functions static scsi: iscsi: Fix deadlock on recovery path during GFP_IO reclaim scsi: ufs: Fix WriteBooster flush during runtime suspend scsi: ufs: Fix index of attributes query for WriteBooster feature scsi: ufs: Allow WriteBooster on UFS 2.2 devices scsi: ufs: Remove unnecessary memset for dev_info scsi: ufs-qcom: Fix scheduling while atomic issue scsi: mpt3sas: Fix reply queue count in non RDPQ mode scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd() scsi: vhost: Notify TCM about the maximum sg entries supported per command scsi: qla2xxx: Remove return value from qla_nvme_ls() scsi: qla2xxx: Remove an unused function scsi: iscsi: Register sysfs for iscsi workqueue scsi: scsi_debug: Parser tables and code interaction scsi: core: Refactor scsi_mq_setup_tags function scsi: core: Fix incorrect usage of shost_for_each_device scsi: qla2xxx: Fix endianness annotations in source files ...
This commit is contained in:
@@ -528,6 +528,21 @@ max_write_same_blocks_store(struct device *dev, struct device_attribute *attr,
|
||||
}
|
||||
static DEVICE_ATTR_RW(max_write_same_blocks);
|
||||
|
||||
static ssize_t
|
||||
zoned_cap_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct scsi_disk *sdkp = to_scsi_disk(dev);
|
||||
|
||||
if (sdkp->device->type == TYPE_ZBC)
|
||||
return sprintf(buf, "host-managed\n");
|
||||
if (sdkp->zoned == 1)
|
||||
return sprintf(buf, "host-aware\n");
|
||||
if (sdkp->zoned == 2)
|
||||
return sprintf(buf, "drive-managed\n");
|
||||
return sprintf(buf, "none\n");
|
||||
}
|
||||
static DEVICE_ATTR_RO(zoned_cap);
|
||||
|
||||
static struct attribute *sd_disk_attrs[] = {
|
||||
&dev_attr_cache_type.attr,
|
||||
&dev_attr_FUA.attr,
|
||||
@@ -541,6 +556,7 @@ static struct attribute *sd_disk_attrs[] = {
|
||||
&dev_attr_zeroing_mode.attr,
|
||||
&dev_attr_max_write_same_blocks.attr,
|
||||
&dev_attr_max_medium_access_timeouts.attr,
|
||||
&dev_attr_zoned_cap.attr,
|
||||
NULL,
|
||||
};
|
||||
ATTRIBUTE_GROUPS(sd_disk);
|
||||
@@ -2962,6 +2978,9 @@ static void sd_read_block_characteristics(struct scsi_disk *sdkp)
|
||||
* with partitions as regular block devices.
|
||||
*/
|
||||
q->limits.zoned = BLK_ZONED_NONE;
|
||||
if (sdkp->zoned == 2 && sdkp->first_scan)
|
||||
sd_printk(KERN_NOTICE, sdkp,
|
||||
"Drive-managed SMR disk\n");
|
||||
}
|
||||
}
|
||||
if (blk_queue_is_zoned(q) && sdkp->first_scan)
|
||||
|
Reference in New Issue
Block a user