diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-04-27 14:13:10 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-02 19:51:14 -0400 |
commit | 0fb1ea0933153180df666f6694855ddfe9408e4a (patch) | |
tree | a3705c12a5f57fadcc5daf3d0eec70a8afa8d918 /fs/namei.c | |
parent | fe9ec8291fcaa74badf0a67e3a82741b3ee40a9e (diff) | |
download | lwn-0fb1ea0933153180df666f6694855ddfe9408e4a.tar.gz lwn-0fb1ea0933153180df666f6694855ddfe9408e4a.zip |
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>
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/namei.c b/fs/namei.c index 38eab154cef7..3951cc4f34c5 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2828,7 +2828,7 @@ static int atomic_open(struct nameidata *nd, struct dentry *dentry, int *opened) { 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; int error; 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.mnt = nd->path.mnt; - error = dir->i_op->atomic_open(dir, dentry, file, open_flag, mode, - opened); + error = dir->i_op->atomic_open(dir, dentry, file, + open_to_namei_flags(open_flag), + mode, opened); if (error < 0) { if (create_error && error == -ENOENT) error = create_error; |