mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
switch nfs_lookup_check_intent() away from nameidata
just pass the flags Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
02e5180d99
commit
93420b40bb
10
fs/nfs/dir.c
10
fs/nfs/dir.c
@ -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.
|
||||
*/
|
||||
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)
|
||||
{
|
||||
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)
|
||||
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)
|
||||
goto out_force;
|
||||
/* 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) &&
|
||||
(S_ISREG(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)
|
||||
{
|
||||
/* 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;
|
||||
if (NFS_SERVER(dir)->flags & NFS_MOUNT_LOOKUP_CACHE_NONEG)
|
||||
return 1;
|
||||
|
Loading…
Reference in New Issue
Block a user