| From 3b9d35d744bb5139f9fed57f38c019bb8c7d351c Mon Sep 17 00:00:00 2001 |
| From: Lars Ellenberg <lars.ellenberg@linbit.com> |
| Date: Mon, 10 Nov 2014 17:21:13 +0100 |
| Subject: drbd: merge_bvec_fn: properly remap bvm->bi_bdev |
| |
| From: Lars Ellenberg <lars.ellenberg@linbit.com> |
| |
| commit 3b9d35d744bb5139f9fed57f38c019bb8c7d351c upstream. |
| |
| This was not noticed for many years. Affects operation if |
| md raid is used a backing device for DRBD. |
| |
| CC: stable@kernel.org # v3.2+ |
| Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> |
| Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com> |
| Signed-off-by: Jens Axboe <axboe@fb.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/block/drbd/drbd_req.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/block/drbd/drbd_req.c |
| +++ b/drivers/block/drbd/drbd_req.c |
| @@ -1309,6 +1309,7 @@ int drbd_merge_bvec(struct request_queue |
| struct request_queue * const b = |
| mdev->ldev->backing_bdev->bd_disk->queue; |
| if (b->merge_bvec_fn) { |
| + bvm->bi_bdev = mdev->ldev->backing_bdev; |
| backing_limit = b->merge_bvec_fn(b, bvm, bvec); |
| limit = min(limit, backing_limit); |
| } |