Commit 50ccf1d2 authored by Dave Carroll's avatar Dave Carroll Committed by Fanhui Meng
Browse files

scsi: smartpqi: add no_write_same for logical volumes

mainline inclusion
from mainline-v5.0-rc1
commit b6e2ef67
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IB8G7W


CVE: NA

--------------------------------

During slave_alloc, for logical volumes include no_write_same into the
scsi_device structure. This will insure that WRITE_SAME will not be used
for LD's.

Reviewed-by: default avatarAjish Koshy <ajish.koshy@microsemi.com>
Reviewed-by: default avatarMurthy Bhat <murthy.bhat@microsemi.com>
Reviewed-by: default avatarMahesh Rajashekhara <mahesh.rajashekhara@microsemi.com>
Reviewed-by: default avatarJustin Lindley <justin.lindley@microsemi.com>
Reviewed-by: default avatarScott Benesh <scott.benesh@microsemi.com>
Reviewed-by: default avatarScott Teel <scott.teel@microsemi.com>
Reviewed-by: default avatarKevin Barnett <kevin.barnett@microsemi.com>
Signed-off-by: default avatarDave Carroll <david.carroll@microsemi.com>
Signed-off-by: default avatarDon Brace <don.brace@microsemi.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>

Signed-off-by: default avatarFanhui Meng <mengfanhui@kylinos.cn>
parent 312efa97
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -176,6 +176,11 @@ static inline void pqi_scsi_done(struct scsi_cmnd *scmd)
	scmd->scsi_done(scmd);
}

static inline void pqi_disable_write_same(struct scsi_device *sdev)
{
	sdev->no_write_same = 1;
}

static inline bool pqi_scsi3addr_equal(u8 *scsi3addr1, u8 *scsi3addr2)
{
	return memcmp(scsi3addr1, scsi3addr2, 8) == 0;
@@ -5335,6 +5340,8 @@ static int pqi_slave_alloc(struct scsi_device *sdev)
			scsi_change_queue_depth(sdev,
				device->advertised_queue_depth);
		}
		if (pqi_is_logical_device(device))
			pqi_disable_write_same(sdev);
	}

	spin_unlock_irqrestore(&ctrl_info->scsi_device_list_lock, flags);