mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-07 22:42:04 +00:00
atomic_open(): delay open_to_namei_flags() until the method call
nobody else needs that transformation. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
fe9ec8291f
commit
0fb1ea0933
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user