From: Aswin Murugan <[email protected]>

Enable the Force Unit Access (FUA) bit in SCSI WRITE10 commands to
ensure writes bypass the device's volatile cache and go directly to
non-volatile storage. This provides write-through behavior that prevents
data loss during board resets.

Signed-off-by: Aswin Murugan <[email protected]>
---
Changes in v2:
- Reverted "scsi: sync cache on write" commit and then set the FUA bit

 drivers/scsi/scsi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 2e99f68cc5a..153b4841add 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -107,7 +107,7 @@ static void scsi_setup_write_ext(struct scsi_cmd *pccb, 
lbaint_t start,
                                 lbaint_t blocks)
 {
        pccb->cmd[0] = SCSI_WRITE10;
-       pccb->cmd[1] = 0;
+       pccb->cmd[1] = 0x08; /* Set FUA bit to bypass write cache */
        pccb->cmd[2] = (unsigned char)(start >> 24) & 0xff;
        pccb->cmd[3] = (unsigned char)(start >> 16) & 0xff;
        pccb->cmd[4] = (unsigned char)(start >> 8) & 0xff;
-- 
2.34.1

Reply via email to