33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
|
Index: drbd-8.4.6/drbd/drbd_bitmap.c
|
||
|
===================================================================
|
||
|
--- drbd-8.4.6.orig/drbd/drbd_bitmap.c
|
||
|
+++ drbd-8.4.6/drbd/drbd_bitmap.c
|
||
|
@@ -1084,7 +1084,11 @@ static void bm_page_io_async(struct drbd
|
||
|
bm_set_page_unchanged(b->bm_pages[page_nr]);
|
||
|
|
||
|
if (ctx->flags & BM_AIO_COPY_PAGES) {
|
||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
|
||
|
+ page = mempool_alloc(drbd_md_io_page_pool, __GFP_HIGHMEM|__GFP_RECLAIM);
|
||
|
+#else
|
||
|
page = mempool_alloc(drbd_md_io_page_pool, __GFP_HIGHMEM|__GFP_WAIT);
|
||
|
+#endif
|
||
|
copy_highpage(page, b->bm_pages[page_nr]);
|
||
|
bm_store_page_idx(page, page_nr);
|
||
|
} else
|
||
|
Index: drbd-8.4.6/drbd/drbd_receiver.c
|
||
|
===================================================================
|
||
|
--- drbd-8.4.6.orig/drbd/drbd_receiver.c
|
||
|
+++ drbd-8.4.6/drbd/drbd_receiver.c
|
||
|
@@ -421,7 +421,11 @@ drbd_alloc_peer_req(struct drbd_peer_dev
|
||
|
}
|
||
|
|
||
|
if (has_payload && data_size) {
|
||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0)
|
||
|
+ page = drbd_alloc_pages(peer_device, nr_pages, (gfp_mask & __GFP_RECLAIM));
|
||
|
+#else
|
||
|
page = drbd_alloc_pages(peer_device, nr_pages, (gfp_mask & __GFP_WAIT));
|
||
|
+#endif
|
||
|
if (!page)
|
||
|
goto fail;
|
||
|
}
|