[Drbd-dev] [PATCH] drbd: Avoid GFP_KERNEL allocation from alloc_send_buffer()

Roland Kammerer roland.kammerer at linbit.com
Thu Apr 25 12:43:21 CEST 2019


On Thu, Apr 25, 2019 at 06:29:11PM +0900, Tetsuo Handa wrote:
>  drbd/drbd_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drbd/drbd_main.c b/drbd/drbd_main.c
> index 80afdd8a..d48a5ea3 100644
> --- a/drbd/drbd_main.c
> +++ b/drbd/drbd_main.c
> @@ -966,7 +966,7 @@ static void new_or_recycle_send_buffer_page(struct drbd_send_buffer *sbuf)
>  		if (count == 1)
>  			goto have_page;
>  
> -		page = alloc_page(GFP_KERNEL);
> +		page = alloc_page(GFP_ATOMIC);
>  		if (page) {
>  			put_page(sbuf->page);
>  			sbuf->page = page;

Thanks for reporting and a proposed fix. By coincidence this was already
fixed by Phil in our internal tree like this:

> -		page = alloc_page(GFP_KERNEL);
> +		page = alloc_page(GFP_NOIP | __GFP_NOWARN);

Regards, rck


More information about the drbd-dev mailing list