diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-core.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 07ab75403e1a..cce7a88dc612 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
@@ -1739,10 +1739,14 @@ static int __end_that_request_first(struct request *req, int error, | |||
1739 | trace_block_rq_complete(req->q, req); | 1739 | trace_block_rq_complete(req->q, req); |
1740 | 1740 | ||
1741 | /* | 1741 | /* |
1742 | * for a REQ_TYPE_BLOCK_PC request, we want to carry any eventual | 1742 | * For fs requests, rq is just carrier of independent bio's |
1743 | * sense key with us all the way through | 1743 | * and each partial completion should be handled separately. |
1744 | * Reset per-request error on each partial completion. | ||
1745 | * | ||
1746 | * TODO: tj: This is too subtle. It would be better to let | ||
1747 | * low level drivers do what they see fit. | ||
1744 | */ | 1748 | */ |
1745 | if (!blk_pc_request(req)) | 1749 | if (blk_fs_request(req)) |
1746 | req->errors = 0; | 1750 | req->errors = 0; |
1747 | 1751 | ||
1748 | if (error && (blk_fs_request(req) && !(req->cmd_flags & REQ_QUIET))) { | 1752 | if (error && (blk_fs_request(req) && !(req->cmd_flags & REQ_QUIET))) { |