atomic_open(): delay open_to_namei_flags() until the method call
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 27 Apr 2016 18:13:10 +0000 (14:13 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 2 May 2016 23:51:14 +0000 (19:51 -0400)
nobody else needs that transformation.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namei.c

index 38eab15..3951cc4 100644 (file)
@@ -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;