req->rq_state &= ~RQ_LOCAL_PENDING;
 
                _req_may_be_done_not_susp(req, m);
-               put_ldev(mdev);
                break;
 
        case abort_disk_io:
 
                __drbd_chk_io_error(mdev, false);
                _req_may_be_done_not_susp(req, m);
-               put_ldev(mdev);
                break;
 
        case read_ahead_completed_with_error:
                req->rq_state |= RQ_LOCAL_COMPLETED;
                req->rq_state &= ~RQ_LOCAL_PENDING;
                _req_may_be_done_not_susp(req, m);
-               put_ldev(mdev);
                break;
 
        case read_completed_with_error:
                D_ASSERT(!(req->rq_state & RQ_NET_MASK));
 
                __drbd_chk_io_error(mdev, false);
-               put_ldev(mdev);
 
        goto_queue_for_net_read:
 
 
        spin_lock_irqsave(&mdev->req_lock, flags);
        __req_mod(req, what, &m);
        spin_unlock_irqrestore(&mdev->req_lock, flags);
+       put_ldev(mdev);
 
        if (m.bio)
                complete_master_bio(mdev, &m);