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.