scsi: core: Handle depopulation and restoration in progress
authorDouglas Gilbert <dgilbert@interlog.com>
Sun, 15 Oct 2023 05:06:50 +0000 (01:06 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 17 Oct 2023 01:02:23 +0000 (21:02 -0400)
commit2bbeb8d12404cf0603f513fc33269ef9abfbb396
treeccca91bcd083bd6f93016605c27c6c40cfec662e
parent72208ebe181e38678dce753354233acf0cc5422b
scsi: core: Handle depopulation and restoration in progress

The default handling of the NOT READY sense key is to wait for the device
to become ready. The "wait" is assumed to be relatively short. However
there is a sub-class of NOT READY that have the "... in progress" phrase in
their additional sense code and these can take much longer.  Following on
from commit 505aa4b6a883 ("scsi: sd: Defer spinning up drive while SANITIZE
is in progress") we now have element depopulation and restoration that can
take a long time.  For example, over 24 hours for a 20 TB, 7200 rpm hard
disk to depopulate 1 of its 20 elements.

Add handling of ASC/ASCQ: 0x4,0x24 (depopulation in progress)
and ASC/ASCQ: 0x4,0x25 (depopulation restoration in progress)
to sd.c . The scsi_lib.c has incomplete handling of these
two messages, so complete it.

Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
Link: https://lore.kernel.org/r/20231015050650.131145-1-dgilbert@interlog.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_lib.c
drivers/scsi/sd.c