From: Lars Ellenberg Date: Mon, 10 Nov 2014 16:21:13 +0000 (+0100) Subject: drbd: merge_bvec_fn: properly remap bvm->bi_bdev X-Git-Tag: v3.16.35~3342 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=518206ca234906f9fe7278f64dcf39a5ea00425e;p=thirdparty%2Fkernel%2Fstable.git drbd: merge_bvec_fn: properly remap bvm->bi_bdev commit 3b9d35d744bb5139f9fed57f38c019bb8c7d351c upstream. This was not noticed for many years. Affects operation if md raid is used a backing device for DRBD. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg Signed-off-by: Jens Axboe Signed-off-by: Luis Henriques --- diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c index 09803d0d5207c..eeba503ee7bb6 100644 --- a/drivers/block/drbd/drbd_req.c +++ b/drivers/block/drbd/drbd_req.c @@ -1343,6 +1343,7 @@ int drbd_merge_bvec(struct request_queue *q, struct bvec_merge_data *bvm, struct struct request_queue * const b = device->ldev->backing_bdev->bd_disk->queue; if (b->merge_bvec_fn) { + bvm->bi_bdev = device->ldev->backing_bdev; backing_limit = b->merge_bvec_fn(b, bvm, bvec); limit = min(limit, backing_limit); }