[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <13035b03-ed27-c36e-da6a-072d882e787f@gmx.com>
Date: Tue, 25 Oct 2022 17:49:55 +0800
From: Qu Wenruo <quwenruo.btrfs@....com>
To: Nikolay Borisov <nborisov@...e.com>,
Li zeming <zeming@...china.com>, clm@...com,
josef@...icpanda.com, dsterba@...e.com
Cc: linux-btrfs@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] btrfs: volumes: Increase bioc pointer check
On 2022/10/25 17:29, Nikolay Borisov wrote:
>
>
> On 25.10.22 г. 11:28 ч., Li zeming wrote:
>> If kzalloc fails to allocate the bioc pointer, NULL is returned
>> directly.
>>
>> Signed-off-by: Li zeming <zeming@...china.com>
>
> This patch clearly shows you haven't really understood the code. As is
> evident there is __GFP_NOFAIL flag so as per the guarantees for this
> flag we either loop infinitely trying to allocate a bioc or simply
> allocated it. So this check can never be triggered.
I guess what he missed is just to also remove that NOFAIL flag.
NOFAIL will not 100% guarantee the allocation, and I don't see this
location to be so important, especially when the only caller is already
handing allocation failure.
Thanks,
Qu
>
> NAK
>> ---
>> fs/btrfs/volumes.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
>> index 064ab2a79c80..f9cb815fe23d 100644
>> --- a/fs/btrfs/volumes.c
>> +++ b/fs/btrfs/volumes.c
>> @@ -5892,6 +5892,8 @@ static struct btrfs_io_context
>> *alloc_btrfs_io_context(struct btrfs_fs_info *fs_
>> */
>> sizeof(u64) * (total_stripes),
>> GFP_NOFS|__GFP_NOFAIL);
>> + if (!bioc)
>> + return NULL;
>> atomic_set(&bioc->error, 0);
>> refcount_set(&bioc->refs, 1);
Powered by blists - more mailing lists