mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] scsi: sd: retry command SYNC CACHE if format in progress
@ 2024-08-08  2:17 Yihang Li
  2024-08-08 19:09 ` Bart Van Assche
  0 siblings, 1 reply; 6+ messages in thread
From: Yihang Li @ 2024-08-08  2:17 UTC (permalink / raw)
  To: James.Bottomley, martin.petersen
  Cc: linux-scsi, linux-kernel, prime.zeng, liyihang9, linuxarm

If formatting a suspended disk (such as formatting with different DIF
type), the SYNC CACHE command will fail because the disk is in the
formatting process, which will cause the runtime_status of the disk to
error and it is difficult for user to recover it.

To solve the issue, retry the command until format command is finished.

Signed-off-by: Yihang Li <liyihang9@huawei.com>
---
 drivers/scsi/sd.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index adeaa8ab9951..5cd88a8eea73 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1823,6 +1823,11 @@ static int sd_sync_cache(struct scsi_disk *sdkp)
 			    (sshdr.asc == 0x74 && sshdr.ascq == 0x71))	/* drive is password locked */
 				/* this is no error here */
 				return 0;
+
+			/* retry if format in progress */
+			if (sshdr.asc == 0x4 && sshdr.ascq == 0x4)
+				return -EBUSY;
+
 			/*
 			 * This drive doesn't support sync and there's not much
 			 * we can do because this is called during shutdown
-- 
2.33.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-08-13  1:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-08  2:17 [PATCH] scsi: sd: retry command SYNC CACHE if format in progress Yihang Li
2024-08-08 19:09 ` Bart Van Assche
2024-08-09  3:44   ` Yihang Li
2024-08-09 19:14     ` Bart Van Assche
2024-08-10  1:46       ` Yihang Li
2024-08-13  1:33       ` Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®