aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/drbd/drbd_req.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index 3678d3d66c6c..d09aac4a84ec 100644
--- a/drivers/block/drbd/drbd_req.c
+++ b/drivers/block/drbd/drbd_req.c
@@ -505,7 +505,7 @@ void __req_mod(struct drbd_request *req, enum drbd_req_event what,
505 * corresponding hlist_del is in _req_may_be_done() */ 505 * corresponding hlist_del is in _req_may_be_done() */
506 hlist_add_head(&req->colision, ar_hash_slot(mdev, req->sector)); 506 hlist_add_head(&req->colision, ar_hash_slot(mdev, req->sector));
507 507
508 set_bit(UNPLUG_REMOTE, &mdev->flags); /* why? */ 508 set_bit(UNPLUG_REMOTE, &mdev->flags);
509 509
510 D_ASSERT(req->rq_state & RQ_NET_PENDING); 510 D_ASSERT(req->rq_state & RQ_NET_PENDING);
511 req->rq_state |= RQ_NET_QUEUED; 511 req->rq_state |= RQ_NET_QUEUED;
@@ -536,6 +536,11 @@ void __req_mod(struct drbd_request *req, enum drbd_req_event what,
536 * 536 *
537 * Add req to the (now) current epoch (barrier). */ 537 * Add req to the (now) current epoch (barrier). */
538 538
539 /* otherwise we may lose an unplug, which may cause some remote
540 * io-scheduler timeout to expire, increasing maximum latency,
541 * hurting performance. */
542 set_bit(UNPLUG_REMOTE, &mdev->flags);
543
539 /* see drbd_make_request_common, 544 /* see drbd_make_request_common,
540 * just after it grabs the req_lock */ 545 * just after it grabs the req_lock */
541 D_ASSERT(test_bit(CREATE_BARRIER, &mdev->flags) == 0); 546 D_ASSERT(test_bit(CREATE_BARRIER, &mdev->flags) == 0);