|
@@ -1037,10 +1037,10 @@ static int nfs_check_verifier(struct inode *dir, struct dentry *dentry)
|
|
* component of the path and none of them is set before that last
|
|
* component of the path and none of them is set before that last
|
|
* component.
|
|
* component.
|
|
*/
|
|
*/
|
|
-static inline unsigned int nfs_lookup_check_intent(struct nameidata *nd,
|
|
|
|
|
|
+static inline unsigned int nfs_lookup_check_intent(unsigned int flags,
|
|
unsigned int mask)
|
|
unsigned int mask)
|
|
{
|
|
{
|
|
- return nd->flags & mask;
|
|
|
|
|
|
+ return flags & mask;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -1051,7 +1051,7 @@ static int nfs_is_exclusive_create(struct inode *dir, struct nameidata *nd)
|
|
{
|
|
{
|
|
if (NFS_PROTO(dir)->version == 2)
|
|
if (NFS_PROTO(dir)->version == 2)
|
|
return 0;
|
|
return 0;
|
|
- return nd && nfs_lookup_check_intent(nd, LOOKUP_EXCL);
|
|
|
|
|
|
+ return nd && nfs_lookup_check_intent(nd->flags, LOOKUP_EXCL);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -1074,7 +1074,7 @@ int nfs_lookup_verify_inode(struct inode *inode, struct nameidata *nd)
|
|
if (nd->flags & LOOKUP_REVAL)
|
|
if (nd->flags & LOOKUP_REVAL)
|
|
goto out_force;
|
|
goto out_force;
|
|
/* This is an open(2) */
|
|
/* This is an open(2) */
|
|
- if (nfs_lookup_check_intent(nd, LOOKUP_OPEN) != 0 &&
|
|
|
|
|
|
+ if (nfs_lookup_check_intent(nd->flags, LOOKUP_OPEN) != 0 &&
|
|
!(server->flags & NFS_MOUNT_NOCTO) &&
|
|
!(server->flags & NFS_MOUNT_NOCTO) &&
|
|
(S_ISREG(inode->i_mode) ||
|
|
(S_ISREG(inode->i_mode) ||
|
|
S_ISDIR(inode->i_mode)))
|
|
S_ISDIR(inode->i_mode)))
|
|
@@ -1098,7 +1098,7 @@ int nfs_neg_need_reval(struct inode *dir, struct dentry *dentry,
|
|
struct nameidata *nd)
|
|
struct nameidata *nd)
|
|
{
|
|
{
|
|
/* Don't revalidate a negative dentry if we're creating a new file */
|
|
/* Don't revalidate a negative dentry if we're creating a new file */
|
|
- if (nd != NULL && nfs_lookup_check_intent(nd, LOOKUP_CREATE) != 0)
|
|
|
|
|
|
+ if (nd != NULL && nfs_lookup_check_intent(nd->flags, LOOKUP_CREATE) != 0)
|
|
return 0;
|
|
return 0;
|
|
if (NFS_SERVER(dir)->flags & NFS_MOUNT_LOOKUP_CACHE_NONEG)
|
|
if (NFS_SERVER(dir)->flags & NFS_MOUNT_LOOKUP_CACHE_NONEG)
|
|
return 1;
|
|
return 1;
|