b91e658262
BSC#955968, support GFP_RECLAIM in kernel4.4 OBS-URL: https://build.opensuse.org/request/show/345343 OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/drbd?expand=0&rev=26
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;
|
|
}
|