mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-08 15:04:45 +00:00
scsi: sd: Ignore zoned field for host-managed devices
There is no good match of the zoned field of the block device characteristics page for host-managed devices. For these devices, the zoning model is derived directly from the device type. So ignore the zoned field for these drives. [mkp: typo] Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
26f2819772
commit
68af412c77
@ -2784,13 +2784,21 @@ static void sd_read_block_characteristics(struct scsi_disk *sdkp)
|
||||
queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, q);
|
||||
}
|
||||
|
||||
sdkp->zoned = (buffer[8] >> 4) & 3;
|
||||
if (sdkp->zoned == 1)
|
||||
q->limits.zoned = BLK_ZONED_HA;
|
||||
else if (sdkp->device->type == TYPE_ZBC)
|
||||
if (sdkp->device->type == TYPE_ZBC) {
|
||||
/* Host-managed */
|
||||
q->limits.zoned = BLK_ZONED_HM;
|
||||
else
|
||||
q->limits.zoned = BLK_ZONED_NONE;
|
||||
} else {
|
||||
sdkp->zoned = (buffer[8] >> 4) & 3;
|
||||
if (sdkp->zoned == 1)
|
||||
/* Host-aware */
|
||||
q->limits.zoned = BLK_ZONED_HA;
|
||||
else
|
||||
/*
|
||||
* Treat drive-managed devices as
|
||||
* regular block devices.
|
||||
*/
|
||||
q->limits.zoned = BLK_ZONED_NONE;
|
||||
}
|
||||
if (blk_queue_is_zoned(q) && sdkp->first_scan)
|
||||
sd_printk(KERN_NOTICE, sdkp, "Host-%s zoned block device\n",
|
||||
q->limits.zoned == BLK_ZONED_HM ? "managed" : "aware");
|
||||
|
Loading…
Reference in New Issue
Block a user