[PATCH] make O_EXCL in nd->intent.flags visible in nd->flags
New flag: LOOKUP_EXCL. Set before doing the final step of pathname resolution on the paths that have LOOKUP_CREATE and O_EXCL. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -707,9 +707,7 @@ static int nfs_is_exclusive_create(struct inode *dir, struct nameidata *nd)
|
||||
{
|
||||
if (NFS_PROTO(dir)->version == 2)
|
||||
return 0;
|
||||
if (nd == NULL || nfs_lookup_check_intent(nd, LOOKUP_CREATE) == 0)
|
||||
return 0;
|
||||
return (nd->intent.open.flags & O_EXCL) != 0;
|
||||
return nd && nfs_lookup_check_intent(nd, LOOKUP_EXCL);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1009,7 +1007,7 @@ static struct dentry *nfs_atomic_lookup(struct inode *dir, struct dentry *dentry
|
||||
|
||||
/* Let vfs_create() deal with O_EXCL. Instantiate, but don't hash
|
||||
* the dentry. */
|
||||
if (nd->intent.open.flags & O_EXCL) {
|
||||
if (nd->flags & LOOKUP_EXCL) {
|
||||
d_instantiate(dentry, NULL);
|
||||
goto out;
|
||||
}
|
||||
|
Reference in New Issue
Block a user