mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
scsi: sd: Fix wrong DPOFUA disable in sd_read_cache_type
[ Upstream commit 26f2819772 ]
Zoned block devices force the use of READ/WRITE(16) commands by setting
sdkp->use_16_for_rw and clearing sdkp->use_10_for_rw. This result in
DPOFUA always being disabled for these drives as the assumed use of
the deprecated READ/WRITE(6) commands only looks at sdkp->use_10_for_rw.
Strenghten the test by also checking that sdkp->use_16_for_rw is false.
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>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b92f9f6a2c
commit
5c982bac21
|
|
@ -2566,7 +2566,8 @@ sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer)
|
|||
if (sdp->broken_fua) {
|
||||
sd_first_printk(KERN_NOTICE, sdkp, "Disabling FUA\n");
|
||||
sdkp->DPOFUA = 0;
|
||||
} else if (sdkp->DPOFUA && !sdkp->device->use_10_for_rw) {
|
||||
} else if (sdkp->DPOFUA && !sdkp->device->use_10_for_rw &&
|
||||
!sdkp->device->use_16_for_rw) {
|
||||
sd_first_printk(KERN_NOTICE, sdkp,
|
||||
"Uses READ/WRITE(6), disabling FUA\n");
|
||||
sdkp->DPOFUA = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user