libata-pmp-prep: implement ATA_LFLAG_NO_RETRY
Some PMP links are connected to internal pseudo devices which may come and go depending on situation. There's no reason to try hard to recover them. ATA_LFLAG_NO_RETRY tells EH to not retry if the device attached to the link fails. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Родитель
ae791c0569
Коммит
fd995f7039
|
@ -2335,7 +2335,10 @@ int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
|
|||
struct ata_eh_context *ehc = &link->eh_context;
|
||||
|
||||
ata_link_for_each_dev(dev, link) {
|
||||
ehc->tries[dev->devno] = ATA_EH_DEV_TRIES;
|
||||
if (link->flags & ATA_LFLAG_NO_RETRY)
|
||||
ehc->tries[dev->devno] = 1;
|
||||
else
|
||||
ehc->tries[dev->devno] = ATA_EH_DEV_TRIES;
|
||||
|
||||
/* collect port action mask recorded in dev actions */
|
||||
ehc->i.action |= ehc->i.dev_action[dev->devno] &
|
||||
|
|
|
@ -169,6 +169,7 @@ enum {
|
|||
ATA_LFLAG_ASSUME_ATA = (1 << 3), /* assume ATA class */
|
||||
ATA_LFLAG_ASSUME_SEMB = (1 << 4), /* assume SEMB class */
|
||||
ATA_LFLAG_ASSUME_CLASS = ATA_LFLAG_ASSUME_ATA | ATA_LFLAG_ASSUME_SEMB,
|
||||
ATA_LFLAG_NO_RETRY = (1 << 5), /* don't retry this link */
|
||||
|
||||
/* struct ata_port flags */
|
||||
ATA_FLAG_SLAVE_POSS = (1 << 0), /* host supports slave dev */
|
||||
|
|
Загрузка…
Ссылка в новой задаче