Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fb1ea09 authored by Al Viro's avatar Al Viro
Browse files

atomic_open(): delay open_to_namei_flags() until the method call



nobody else needs that transformation.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent fe9ec829
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -2828,7 +2828,7 @@ static int atomic_open(struct nameidata *nd, struct dentry *dentry,
			int *opened)
			int *opened)
{
{
	struct inode *dir =  nd->path.dentry->d_inode;
	struct inode *dir =  nd->path.dentry->d_inode;
	unsigned open_flag = open_to_namei_flags(op->open_flag);
	unsigned open_flag = op->open_flag;
	umode_t mode;
	umode_t mode;
	int error;
	int error;
	int acc_mode;
	int acc_mode;
@@ -2886,8 +2886,9 @@ static int atomic_open(struct nameidata *nd, struct dentry *dentry,


	file->f_path.dentry = DENTRY_NOT_SET;
	file->f_path.dentry = DENTRY_NOT_SET;
	file->f_path.mnt = nd->path.mnt;
	file->f_path.mnt = nd->path.mnt;
	error = dir->i_op->atomic_open(dir, dentry, file, open_flag, mode,
	error = dir->i_op->atomic_open(dir, dentry, file,
				      opened);
				       open_to_namei_flags(open_flag),
				       mode, opened);
	if (error < 0) {
	if (error < 0) {
		if (create_error && error == -ENOENT)
		if (create_error && error == -ENOENT)
			error = create_error;
			error = create_error;