From: Li zeming Date: Wed, 26 Oct 2022 01:36:11 +0000 (+0800) Subject: btrfs: allocate btrfs_io_context without GFP_NOFAIL X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=9f0eac070d23405f18e7a84820bc3d59b1415bec;p=linux.git btrfs: allocate btrfs_io_context without GFP_NOFAIL The __GFP_NOFAIL flag could loop indefinitely when allocation memory in alloc_btrfs_io_context. The callers starting from __btrfs_map_block already handle errors so it's safe to drop the flag. Signed-off-by: Li zeming Reviewed-by: David Sterba Signed-off-by: David Sterba --- diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 2d0950a17f48e..e51fd5f1042a6 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -5899,7 +5899,10 @@ static struct btrfs_io_context *alloc_btrfs_io_context(struct btrfs_fs_info *fs_ * and the stripes. */ sizeof(u64) * (total_stripes), - GFP_NOFS|__GFP_NOFAIL); + GFP_NOFS); + + if (!bioc) + return NULL; refcount_set(&bioc->refs, 1);