In fuse_create_open(), err is initialized to -ENOMEM immediately before the fuse_alloc_forget() NULL check. If forget allocation fails, it branches to out_err with that value. If it succeeds, it falls through without modifying err, so err is still -ENOMEM at the point where fuse_file_alloc() is called. The second err = -ENOMEM before fuse_file_alloc() therefore is redundant. Removing this redundant assignment not only improves performance but also makes the intended error semantics obvious: a single ENOMEM initialization covers both allocation failure exits that share this prelude. Signed-off-by: Li Wang --- fs/fuse/dir.c | 1 - 1 file changed, 1 deletion(-) diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index f7443ca37e35..b118cf23d41a 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -838,7 +838,6 @@ static int fuse_create_open(struct mnt_idmap *idmap, struct inode *dir, if (!forget) goto out_err; - err = -ENOMEM; ff = fuse_file_alloc(fm, true); if (!ff) goto out_put_forget_req; -- 2.34.1