|
@@ -1407,6 +1407,7 @@ int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
|
|
|
struct dentry *res;
|
|
|
struct iattr attr = { .ia_valid = ATTR_OPEN };
|
|
|
struct inode *inode;
|
|
|
+ unsigned int lookup_flags = 0;
|
|
|
int err;
|
|
|
|
|
|
/* Expect a negative dentry */
|
|
@@ -1429,6 +1430,7 @@ int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
|
|
|
*/
|
|
|
return -ENOENT;
|
|
|
}
|
|
|
+ lookup_flags = LOOKUP_OPEN|LOOKUP_DIRECTORY;
|
|
|
goto no_open;
|
|
|
}
|
|
|
|
|
@@ -1479,7 +1481,7 @@ out:
|
|
|
return err;
|
|
|
|
|
|
no_open:
|
|
|
- res = nfs_lookup(dir, dentry, 0);
|
|
|
+ res = nfs_lookup(dir, dentry, lookup_flags);
|
|
|
err = PTR_ERR(res);
|
|
|
if (IS_ERR(res))
|
|
|
goto out;
|