diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/drbd/drbd_req.c | 7 |
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); |