Skip to content

Commit

Permalink
drbd: move put_ldev from __req_mod() to the endio callback
Browse files Browse the repository at this point in the history
One invocation in the endio handler is good enough,
we don't need mention it for each of the different ways
it calls __req_mod().

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
  • Loading branch information
Lars Ellenberg authored and Philipp Reisner committed May 9, 2012
1 parent d64957c commit 46385c8
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 4 deletions.
4 changes: 0 additions & 4 deletions drivers/block/drbd/drbd_req.c
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,6 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
req->rq_state &= ~RQ_LOCAL_PENDING;

_req_may_be_done_not_susp(req, m);
put_ldev(mdev);
break;

case abort_disk_io:
Expand All @@ -458,15 +457,13 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,

__drbd_chk_io_error(mdev, false);
_req_may_be_done_not_susp(req, m);
put_ldev(mdev);
break;

case read_ahead_completed_with_error:
/* it is legal to fail READA */
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:
Expand All @@ -478,7 +475,6 @@ 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);
put_ldev(mdev);

goto_queue_for_net_read:

Expand Down
1 change: 1 addition & 0 deletions drivers/block/drbd/drbd_worker.c
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ void drbd_endio_pri(struct bio *bio, int error)
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);
Expand Down

0 comments on commit 46385c8

Please sign in to comment.