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

Li Wang posted 1 patch 1 month, 3 weeks ago
There is a newer version of this series
fs/fuse/inode.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
[PATCH] fuse: drop redundant check in fuse_sync_bucket_alloc()
Posted by Li Wang 1 month, 3 weeks ago
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.

Signed-off-by: Li Wang <liwang@kylinos.cn>
---
 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
Re: [PATCH] fuse: drop redundant check in fuse_sync_bucket_alloc()
Posted by Joanne Koong 1 month, 3 weeks ago
On Sun, Apr 19, 2026 at 8:10 PM Li Wang <liwang@kylinos.cn> 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@kylinos.cn>

Reviewed-by: Joanne Koong <joannelkoong@gmail.com>

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@lists.linux.dev list

Thanks,
Joanne

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

> ---
>  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
>
[PATCH v2] fuse: drop redundant check in fuse_sync_bucket_alloc()
Posted by Li Wang 1 month, 3 weeks ago
kzalloc_obj with __GFP_NOFAIL is documented to never return failure,
and checking for NULL is redundant (__GFP_NOFAIL in gfp_types.h).

Signed-off-by: Li Wang <liwang@kylinos.cn>
Reviewed-by: Joanne Koong <joannelkoong@gmail.com>
---
Changes since v1:
- Per review, removed the last two sentences of the commit message.

 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
Re: [PATCH v2] fuse: drop redundant check in fuse_sync_bucket_alloc()
Posted by Miklos Szeredi 1 month, 3 weeks ago
On Tue, 21 Apr 2026 at 05:38, Li Wang <liwang@kylinos.cn> wrote:
>
> kzalloc_obj with __GFP_NOFAIL is documented to never return failure,
> and checking for NULL is redundant (__GFP_NOFAIL in gfp_types.h).
>
> Signed-off-by: Li Wang <liwang@kylinos.cn>
> Reviewed-by: Joanne Koong <joannelkoong@gmail.com>

Applied, thanks.

Miklos