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