aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/drbd/drbd_bitmap.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index 1ab205a4bf69..8dc29502dc08 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -1011,17 +1011,11 @@ static void bm_page_io_async(struct bm_aio_ctx *ctx, int page_nr, int rw) __must
1011 bm_set_page_unchanged(b->bm_pages[page_nr]); 1011 bm_set_page_unchanged(b->bm_pages[page_nr]);
1012 1012
1013 if (ctx->flags & BM_AIO_COPY_PAGES) { 1013 if (ctx->flags & BM_AIO_COPY_PAGES) {
1014 void *src, *dest;
1015 page = mempool_alloc(drbd_md_io_page_pool, __GFP_HIGHMEM|__GFP_WAIT); 1014 page = mempool_alloc(drbd_md_io_page_pool, __GFP_HIGHMEM|__GFP_WAIT);
1016 dest = kmap_atomic(page); 1015 copy_highpage(page, b->bm_pages[page_nr]);
1017 src = kmap_atomic(b->bm_pages[page_nr]);
1018 memcpy(dest, src, PAGE_SIZE);
1019 kunmap_atomic(src);
1020 kunmap_atomic(dest);
1021 bm_store_page_idx(page, page_nr); 1016 bm_store_page_idx(page, page_nr);
1022 } else 1017 } else
1023 page = b->bm_pages[page_nr]; 1018 page = b->bm_pages[page_nr];
1024
1025 bio->bi_bdev = mdev->ldev->md_bdev; 1019 bio->bi_bdev = mdev->ldev->md_bdev;
1026 bio->bi_sector = on_disk_sector; 1020 bio->bi_sector = on_disk_sector;
1027 /* bio_add_page of a single page to an empty bio will always succeed, 1021 /* bio_add_page of a single page to an empty bio will always succeed,