kernel-fxtec-pro1x/block
Tejun Heo 924cec7789 block: clear req->errors on bio completion only for fs requests
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>
Acked-by: Jens Axboe <axboe@kernel.dk>
2009-04-28 07:37:28 +02:00
..
as-iosched.c as-iosched: get rid of private REQ_SYNC/REQ_ASYNC defines 2009-04-15 08:28:10 +02:00
blk-barrier.c block: Remove code handling bio_alloc failure with __GFP_WAIT 2009-04-15 12:10:12 +02:00
blk-core.c block: clear req->errors on bio completion only for fs requests 2009-04-28 07:37:28 +02:00
blk-exec.c
blk-integrity.c block: Allow empty integrity profile 2009-01-30 12:34:36 +01:00
blk-ioc.c
blk-map.c
blk-merge.c block: simplify I/O stat accounting 2009-04-24 08:54:21 +02:00
blk-settings.c block: fix queue bounce limit setting 2009-04-22 08:35:09 +02:00
blk-softirq.c generic-ipi: remove CSD_FLAG_WAIT 2009-02-25 14:13:44 +01:00
blk-sysfs.c block: simplify I/O stat accounting 2009-04-24 08:54:21 +02:00
blk-tag.c
blk-timeout.c block: fix intermittent dm timeout based oops 2009-04-24 08:54:21 +02:00
blk.h block: simplify I/O stat accounting 2009-04-24 08:54:21 +02:00
bsg.c bsg: Remove bogus check against request_queue->max_sectors 2009-03-26 11:01:25 +01:00
cfq-iosched.c cfq-iosched: cache prio_tree root in cfqq->p_root 2009-04-24 08:54:22 +02:00
cmd-filter.c [SCSI] Make scsi.h independent of the rest of the scsi includes 2009-03-12 12:58:13 -05:00
compat_ioctl.c
deadline-iosched.c
elevator.c block: fix bad spelling of quiesce 2009-04-15 08:28:09 +02:00
genhd.c block: include empty disks in /proc/diskstats 2009-04-22 08:35:10 +02:00
ioctl.c block: Remove code handling bio_alloc failure with __GFP_WAIT 2009-04-15 12:10:12 +02:00
Kconfig tracing/blktrace: move the tracing file to kernel/trace 2009-02-09 10:51:02 +01:00
Kconfig.iosched
Makefile tracing/blktrace: move the tracing file to kernel/trace 2009-02-09 10:51:02 +01:00
noop-iosched.c
scsi_ioctl.c block: fix SG_IO vector request data length handling 2009-04-22 08:35:09 +02:00