RE: [patch added to 3.12-stable] scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jiri -

Along with this patch, please include below commit in stable 3.12.

5e5ec1759dd663a1d5a2f10930224dd009e500e8

Below is github link.

https://github.com/torvalds/linux/commit/5e5ec1759dd663a1d5a2f10930224dd00
9e500e8

` Kashyap

> -----Original Message-----
> From: Jiri Slaby [mailto:jslaby@xxxxxxx]
> Sent: Wednesday, November 23, 2016 4:10 AM
> To: stable@xxxxxxxxxxxxxxx
> Cc: Kashyap Desai; Sumit Saxena; Martin K . Petersen; Jiri Slaby
> Subject: [patch added to 3.12-stable] scsi: megaraid_sas: Fix data
integrity
> failure for JBOD (passthrough) devices
>
> From: Kashyap Desai <kashyap.desai@xxxxxxxxxxxx>
>
> This patch has been added to the 3.12 stable tree. If you have any
objections,
> please let us know.
>
> ===============
>
> commit 1e793f6fc0db920400574211c48f9157a37e3945 upstream.
>
> Commit 02b01e010afe ("megaraid_sas: return sync cache call with
> success") modified the driver to successfully complete SYNCHRONIZE_CACHE
> commands without passing them to the controller. Disk drive caches are
only
> explicitly managed by controller firmware when operating in RAID mode.
So this
> commit effectively disabled writeback cache flushing for any drives used
in JBOD
> mode, leading to data integrity failures.
>
> [mkp: clarified patch description]
>
> Fixes: 02b01e010afeeb49328d35650d70721d2ca3fd59
> Signed-off-by: Kashyap Desai <kashyap.desai@xxxxxxxxxxxx>
> Signed-off-by: Sumit Saxena <sumit.saxena@xxxxxxxxxxxx>
> Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
> Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
> Reviewed-by: Ewan D. Milne <emilne@xxxxxxxxxx>
> Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
> Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
> ---
>  drivers/scsi/megaraid/megaraid_sas_base.c | 13 +++++--------
>  1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c
> b/drivers/scsi/megaraid/megaraid_sas_base.c
> index 8c3270c809c8..11eafc3f4ca0 100644
> --- a/drivers/scsi/megaraid/megaraid_sas_base.c
> +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
> @@ -1537,16 +1537,13 @@ megasas_queue_command_lck(struct scsi_cmnd
> *scmd, void (*done) (struct scsi_cmnd
>  		goto out_done;
>  	}
>
> -	switch (scmd->cmnd[0]) {
> -	case SYNCHRONIZE_CACHE:
> -		/*
> -		 * FW takes care of flush cache on its own
> -		 * No need to send it down
> -		 */
> +	/*
> +	 * FW takes care of flush cache on its own for Virtual Disk.
> +	 * No need to send it down for VD. For JBOD send
> SYNCHRONIZE_CACHE to FW.
> +	 */
> +	if ((scmd->cmnd[0] == SYNCHRONIZE_CACHE) &&
> MEGASAS_IS_LOGICAL(scmd))
> +{
>  		scmd->result = DID_OK << 16;
>  		goto out_done;
> -	default:
> -		break;
>  	}
>
>  	if (instance->instancet->build_and_issue_cmd(instance, scmd)) {
> --
> 2.10.2
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]