Re: [PATCH v2 2/7] VFS: discard err2 in filename_create()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2025-09-09 at 14:43 +1000, NeilBrown wrote:
> From: NeilBrown <neil@xxxxxxxxxx>
> 
> Since 204a575e91f3 "VFS: add common error checks to lookup_one_qstr_excl()"
> filename_create() does not need to stash the error value from mnt_want_write()
> into a separate variable - the logic that used to clobber 'error' after the
> call of mnt_want_write() has migrated into lookup_one_qstr_excl().
> 
> So there is no need for two different err variables.
> This patch discards "err2" and uses "error' throughout.
> 
> Signed-off-by: NeilBrown <neil@xxxxxxxxxx>
> ---
>  fs/namei.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/namei.c b/fs/namei.c
> index c7c6b255db2c..e2c2ab286bc0 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -4169,7 +4169,6 @@ static struct dentry *filename_create(int dfd, struct filename *name,
>  	unsigned int reval_flag = lookup_flags & LOOKUP_REVAL;
>  	unsigned int create_flags = LOOKUP_CREATE | LOOKUP_EXCL;
>  	int type;
> -	int err2;
>  	int error;
>  
>  	error = filename_parentat(dfd, name, reval_flag, path, &last, &type);
> @@ -4184,7 +4183,7 @@ static struct dentry *filename_create(int dfd, struct filename *name,
>  		goto out;
>  
>  	/* don't fail immediately if it's r/o, at least try to report other errors */
> -	err2 = mnt_want_write(path->mnt);
> +	error = mnt_want_write(path->mnt);
>  	/*
>  	 * Do the final lookup.  Suppress 'create' if there is a trailing
>  	 * '/', and a directory wasn't requested.
> @@ -4197,17 +4196,16 @@ static struct dentry *filename_create(int dfd, struct filename *name,
>  	if (IS_ERR(dentry))
>  		goto unlock;
>  
> -	if (unlikely(err2)) {
> -		error = err2;
> +	if (unlikely(error))
>  		goto fail;
> -	}
> +
>  	return dentry;
>  fail:
>  	dput(dentry);
>  	dentry = ERR_PTR(error);
>  unlock:
>  	inode_unlock(path->dentry->d_inode);
> -	if (!err2)
> +	if (!error)
>  		mnt_drop_write(path->mnt);
>  out:
>  	path_put(path);

Nice cleanup.

Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>

IMO, Christian should go ahead and take in patches 2 and 3 in this
series. They make sense on their own.





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux