Re: [PATCH] fuse: drop redundant check in fuse_sync_bucket_alloc()

From: Joanne Koong

Date: Mon Apr 20 2026 - 18:38:29 EST


On Sun, Apr 19, 2026 at 8:10 PM Li Wang <liwang@xxxxxxxxxx> wrote:
>
> kzalloc_obj with __GFP_NOFAIL is documented to never return failure,
> and checking for NULL is redundant (__GFP_NOFAIL in gfp_types.h).
> Besides, its caller fuse_sync_fs_writes() uses it without a
> NULL check (atomic_inc on new_bucket, rcu_assign_pointer).
> fuse_fill_super_common() passes fuse_sync_bucket_alloc() directly to
> rcu_assign_pointer() without NULL check either.

Sorry to be pedantic, but imo the commit message would be better if
you dropped these last 2 sentences - the way it's phrased reads as if
the callers not checking for null is a reason to drop the check. Your
first sentence is the complete justification for the patch.

>
> Signed-off-by: Li Wang <liwang@xxxxxxxxxx>

Reviewed-by: Joanne Koong <joannelkoong@xxxxxxxxx>

btw just as a sidenote, as per this post by Amir [1], there is now a
transition where fuse patches should be sent to the
fuse-devel@xxxxxxxxxxxxxxx list

Thanks,
Joanne

[1] https://lore.kernel.org/linux-fsdevel/20260419113529.1523179-1-amir73il@xxxxxxxxx/

> ---
> fs/fuse/inode.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
> index 33009227e91d..e5069d2f8e90 100644
> --- a/fs/fuse/inode.c
> +++ b/fs/fuse/inode.c
> @@ -676,11 +676,9 @@ static struct fuse_sync_bucket *fuse_sync_bucket_alloc(void)
> struct fuse_sync_bucket *bucket;
>
> bucket = kzalloc_obj(*bucket, GFP_KERNEL | __GFP_NOFAIL);
> - if (bucket) {
> - init_waitqueue_head(&bucket->waitq);
> - /* Initial active count */
> - atomic_set(&bucket->count, 1);
> - }
> + init_waitqueue_head(&bucket->waitq);
> + /* Initial active count */
> + atomic_set(&bucket->count, 1);
> return bucket;
> }
>
> --
> 2.34.1
>