Messages in this thread | | | Subject | Re: [PATCH] scsi_lib.c: continue after MEDIUM_ERROR | From | James Bottomley <> | Date | Wed, 31 Jan 2007 09:24:30 -0600 |
| |
On Wed, 2007-01-31 at 10:13 -0500, Mark Lord wrote: > James Bottomley wrote: > > > > For the MD case, this is what REQ_FAILFAST is for.
> I cannot find where SCSI honours that flag. James?
Er, it's in scsi_error.c:scsi_decide_disposition():
maybe_retry:
/* we requeue for retry because the error was retryable, and * the request was not marked fast fail. Note that above, * even if the request is marked fast fail, we still requeue * for queue congestion conditions (QUEUE_FULL or BUSY) */ if ((++scmd->retries) <= scmd->allowed && !blk_noretry_request(scmd->request)) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return NEEDS_RETRY; } else { /* * no more retries - report this one back to upper level. */ return SUCCESS; }
> And for that matter, even when I patch SCSI so that it *does* honour it, > I don't actually see the flag making it into the SCSI layer from above. > > And I don't see where/how the block layer takes care when considering > merge FAILFAST/READA requests with non FAILFAST/READA requests. > To me, it looks perfectly happy to add non-FAILFAST/READA bios > to a FAILFAST request, risking data loss if a lower-layer decides > to honour the FAILFAST/READA flags. > > So it's a pretty Good Thing(tm) that SCSI doesn't currently honour it. ;)
James
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |