summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_req.c
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2009-11-04 18:38:23 +0100
committerJens Axboe <jens.axboe@oracle.com>2009-11-04 18:38:23 +0100
commit622d32d3ec40d5075523656ef0ea836f6a595ae3 (patch)
treed4c82d4f90ca0deb8fa806f105e204f2bdac2377 /drivers/block/drbd/drbd_req.c
parent476d42f138ba82389a92a894d8a630a70d36278f (diff)
parented814525f2e45188964c270fc3a5a0b644f7e4a9 (diff)
downloadtalos-op-linux-622d32d3ec40d5075523656ef0ea836f6a595ae3.tar.gz
talos-op-linux-622d32d3ec40d5075523656ef0ea836f6a595ae3.zip
Merge branch 'for-jens' of git://git.drbd.org/linux-2.6-drbd into for-2.6.33
Diffstat (limited to 'drivers/block/drbd/drbd_req.c')
-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,
* corresponding hlist_del is in _req_may_be_done() */
hlist_add_head(&req->colision, ar_hash_slot(mdev, req->sector));
- set_bit(UNPLUG_REMOTE, &mdev->flags); /* why? */
+ set_bit(UNPLUG_REMOTE, &mdev->flags);
D_ASSERT(req->rq_state & RQ_NET_PENDING);
req->rq_state |= RQ_NET_QUEUED;
@@ -536,6 +536,11 @@ void __req_mod(struct drbd_request *req, enum drbd_req_event what,
*
* Add req to the (now) current epoch (barrier). */
+ /* otherwise we may lose an unplug, which may cause some remote
+ * io-scheduler timeout to expire, increasing maximum latency,
+ * hurting performance. */
+ set_bit(UNPLUG_REMOTE, &mdev->flags);
+
/* see drbd_make_request_common,
* just after it grabs the req_lock */
D_ASSERT(test_bit(CREATE_BARRIER, &mdev->flags) == 0);
OpenPOWER on IntegriCloud