On Mon, Apr 09, 2018 at 05:39:16PM +0200, Christoph Hellwig wrote:
> blk_get_request is used for pass-through style I/O and thus doesn't need
> GFP_NOIO.

Obviously GFP_KERNEL is a big improvement over GFP_NOIO!  But can we take
it all the way to GFP_USER, if this is always done in the ioctl path
(which it seems to be, except for nfsd, which presumably won't have
a cpuset memory allocation policy ... and if it did, the admin might
appreciate it honouring said policy).

> Signed-off-by: Christoph Hellwig <h...@lst.de>
> ---
>  block/blk-core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/block/blk-core.c b/block/blk-core.c
> index 432923751551..253a869558f9 100644
> --- a/block/blk-core.c
> +++ b/block/blk-core.c
> @@ -1578,7 +1578,7 @@ static struct request *blk_old_get_request(struct 
> request_queue *q,
>                               unsigned int op, blk_mq_req_flags_t flags)
>  {
>       struct request *rq;
> -     gfp_t gfp_mask = flags & BLK_MQ_REQ_NOWAIT ? GFP_ATOMIC : GFP_NOIO;
> +     gfp_t gfp_mask = flags & BLK_MQ_REQ_NOWAIT ? GFP_ATOMIC : GFP_KERNEL;
>       int ret = 0;
>  
>       WARN_ON_ONCE(q->mq_ops);
> -- 
> 2.16.3
> 

Reply via email to