drbd: change some GFP_KERNEL to GFP_NOIO
Bitmap IO may happend in the context of an application write, in the generic block IO path. We need to use GFP_NOIO. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
This commit is contained in:
parent
dfa8bedbfe
commit
22f46ce2ef
@ -955,7 +955,7 @@ static void bm_async_io_complete(struct bio *bio, int error)
|
||||
static void bm_page_io_async(struct bm_aio_ctx *ctx, int page_nr, int rw) __must_hold(local)
|
||||
{
|
||||
/* we are process context. we always get a bio */
|
||||
struct bio *bio = bio_alloc(GFP_KERNEL, 1);
|
||||
struct bio *bio = bio_alloc(GFP_NOIO, 1);
|
||||
struct drbd_conf *mdev = ctx->mdev;
|
||||
struct drbd_bitmap *b = mdev->bitmap;
|
||||
struct page *page;
|
||||
@ -1029,7 +1029,7 @@ static int bm_rw(struct drbd_conf *mdev, int rw, unsigned lazy_writeout_upper_id
|
||||
* as we submit copies of pages anyways.
|
||||
*/
|
||||
|
||||
ctx = kmalloc(sizeof(struct bm_aio_ctx), GFP_KERNEL);
|
||||
ctx = kmalloc(sizeof(struct bm_aio_ctx), GFP_NOIO);
|
||||
if (!ctx)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -1175,7 +1175,7 @@ int drbd_bm_write_page(struct drbd_conf *mdev, unsigned int idx) __must_hold(loc
|
||||
return 0;
|
||||
}
|
||||
|
||||
ctx = kmalloc(sizeof(struct bm_aio_ctx), GFP_KERNEL);
|
||||
ctx = kmalloc(sizeof(struct bm_aio_ctx), GFP_NOIO);
|
||||
if (!ctx)
|
||||
return -ENOMEM;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user