drbd: fix local read error hung forever
authorLars Ellenberg <lars.ellenberg@linbit.com>
Fri, 8 Jun 2012 14:30:30 +0000 (16:30 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 8 Nov 2012 15:58:32 +0000 (16:58 +0100)
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>
drivers/block/drbd/drbd_req.c

index 44a7d6b..d0d5167 100644 (file)
@@ -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: