Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2415308e authored by Lars Ellenberg's avatar Lars Ellenberg Committed by Philipp Reisner
Browse files

drbd: move put_ldev from __req_mod() to the endio callback

parent 6870ca6d
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -416,7 +416,6 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,

		maybe_wakeup_conflicting_requests(req);
		req_may_be_completed_not_susp(req, m);
		put_ldev(mdev);
		break;

	case ABORT_DISK_IO:
@@ -434,7 +433,6 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
		__drbd_chk_io_error(mdev, false);
		maybe_wakeup_conflicting_requests(req);
		req_may_be_completed_not_susp(req, m);
		put_ldev(mdev);
		break;

	case READ_AHEAD_COMPLETED_WITH_ERROR:
@@ -442,7 +440,6 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
		req->rq_state |= RQ_LOCAL_COMPLETED;
		req->rq_state &= ~RQ_LOCAL_PENDING;
		req_may_be_completed_not_susp(req, m);
		put_ldev(mdev);
		break;

	case READ_COMPLETED_WITH_ERROR:
@@ -454,7 +451,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:

+1 −0
Original line number Diff line number Diff line
@@ -238,6 +238,7 @@ void drbd_request_endio(struct bio *bio, int error)
	spin_lock_irqsave(&mdev->tconn->req_lock, flags);
	__req_mod(req, what, &m);
	spin_unlock_irqrestore(&mdev->tconn->req_lock, flags);
	put_ldev(mdev);

	if (m.bio)
		complete_master_bio(mdev, &m);