summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_req.c
diff options
context:
space:
mode:
authorLars Ellenberg2012-06-08 16:30:30 +0200
committerPhilipp Reisner2012-11-08 16:58:32 +0100
commitab53b90e89eb2421a607655cab426232fdd82f6f (patch)
tree02474e043a62020e39d98beb4eadf30c846a9aa5 /drivers/block/drbd/drbd_req.c
parentdrbd: fix access of unallocated pages and kernel panic (diff)
downloadkernel-qcow2-linux-ab53b90e89eb2421a607655cab426232fdd82f6f.tar.gz
kernel-qcow2-linux-ab53b90e89eb2421a607655cab426232fdd82f6f.tar.xz
kernel-qcow2-linux-ab53b90e89eb2421a607655cab426232fdd82f6f.zip
drbd: fix local read error hung forever
The commit drbd: simplify retry path of failed READ requests simplified it too much: it just did not do anything for local read errors. Add the missing req_may_be_completed_not_susp() to the READ_COMPLETED_WITH_ERROR case. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_req.c')
-rw-r--r--drivers/block/drbd/drbd_req.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index 44a7d6ba4e4f..d0d516743fb1 100644
--- a/drivers/block/drbd/drbd_req.c
+++ b/drivers/block/drbd/drbd_req.c
@@ -460,6 +460,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
D_ASSERT(!(req->rq_state & RQ_NET_MASK));
__drbd_chk_io_error(mdev, false);
+ req_may_be_completed_not_susp(req, m);
break;
case QUEUE_FOR_NET_READ: