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