Unverified Commit e66ccd30 authored by NeilBrown's avatar NeilBrown Committed by Christian Brauner
Browse files

VFS: discard err2 in filename_create()



Since 204a575e "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.

Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarNeilBrown <neil@brown.name>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 17eb98d6
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -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);