summaryrefslogtreecommitdiff
path: root/drivers/block/drbd/drbd_req.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2013-11-14 08:29:01 -0700
committerJens Axboe <axboe@kernel.dk>2013-11-14 08:29:01 -0700
commit1355b37f111b35cd6f53078ce63997aec473629f (patch)
tree590ecf1b148fc631336213a956d8456ce85bdc42 /drivers/block/drbd/drbd_req.c
parentf618ef7c47934d1686a764d0c9f70f23e566683f (diff)
parentc86949486d41d9e7d7681fc72923555114fd702f (diff)
Merge branch 'for-3.13/post-mq-drivers' into for-linus
Diffstat (limited to 'drivers/block/drbd/drbd_req.c')
-rw-r--r--drivers/block/drbd/drbd_req.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index c24379ffd4e3..fec7bef44994 100644
--- a/drivers/block/drbd/drbd_req.c
+++ b/drivers/block/drbd/drbd_req.c
@@ -1306,6 +1306,7 @@ int drbd_merge_bvec(struct request_queue *q, struct bvec_merge_data *bvm, struct
int backing_limit;
if (bio_size && get_ldev(mdev)) {
+ unsigned int max_hw_sectors = queue_max_hw_sectors(q);
struct request_queue * const b =
mdev->ldev->backing_bdev->bd_disk->queue;
if (b->merge_bvec_fn) {
@@ -1313,6 +1314,8 @@ int drbd_merge_bvec(struct request_queue *q, struct bvec_merge_data *bvm, struct
limit = min(limit, backing_limit);
}
put_ldev(mdev);
+ if ((limit >> 9) > max_hw_sectors)
+ limit = max_hw_sectors << 9;
}
return limit;
}