Re: [block #for-next] block: clear req->errors on bio completion only for fs requests

Jens Axboe
2009-04-16T06:20:00Z

On Thu, Apr 16 2009, Tejun Heo wrote:
> Impact: subtle behavior change
>
> For fs requests, rq is only carrier of bios and rq error status as a
> whole doesn't mean much. This is the reason why rq->errors is being
> cleared on each partial completion of a request as on each partial
> completion the error status is transferred to the respective bios.
>
> For pc requests, rq->errors is used to carry error status to the
> issuer and thus __end_that_request_first() doesn't clear it on such
> cases.
>
> The condition was fine till now as only fs and pc requests have used
> bio and thus the bio completion path. However, future changes will
> unify data accesses to bio and all non fs users care about rq error
> status. Clear rq->errors on bio completion only for fs requests.
>
> In general, the implicit clearing is a bit too subtle especially as
> the meaning of rq->errors is completely dependent on low level
> drivers. Unifying / cleaning up rq->errors usage and letting llds
> manage it would be better. TODO comment added.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Cc: Jens Axboe <axboe@kernel.dk>
> ---
> Jens, can you please ack this patch? With FUJITA's scsi_lib cleanup
> and Borislav's patch to make ide not use preallocated data structures,
> this is the only block bit which is necessary for ide cleanup
> patchets. If you're okay with it, I'd like to push this through
> Bartlomiej's tree.

Sure, you can add my acked-by.

--
Jens Axboe