diff options
author | Jens Axboe <axboe@kernel.dk> | 2013-11-14 08:29:01 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2013-11-14 08:29:01 -0700 |
commit | 1355b37f111b35cd6f53078ce63997aec473629f (patch) | |
tree | 590ecf1b148fc631336213a956d8456ce85bdc42 /drivers/block/drbd/drbd_req.c | |
parent | f618ef7c47934d1686a764d0c9f70f23e566683f (diff) | |
parent | c86949486d41d9e7d7681fc72923555114fd702f (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.c | 3 |
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; } |