Skip to content

Commit 15d4b73

Browse files
trondmypdamschuma-ntap
authored andcommitted
NFS: Refactor NFS access to kernel access mask calculation
Signed-off-by: Trond Myklebust <[email protected]> Signed-off-by: Anna Schumaker <[email protected]>
1 parent 3ffbc1d commit 15d4b73

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

fs/nfs/dir.c

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2375,16 +2375,31 @@ void nfs_access_add_cache(struct inode *inode, struct nfs_access_entry *set)
23752375
}
23762376
EXPORT_SYMBOL_GPL(nfs_access_add_cache);
23772377

2378+
#define NFS_MAY_READ (NFS4_ACCESS_READ)
2379+
#define NFS_MAY_WRITE (NFS4_ACCESS_MODIFY | \
2380+
NFS4_ACCESS_EXTEND | \
2381+
NFS4_ACCESS_DELETE)
2382+
#define NFS_MAY_LOOKUP (NFS4_ACCESS_LOOKUP)
2383+
#define NFS_MAY_EXECUTE (NFS4_ACCESS_EXECUTE)
2384+
static int
2385+
nfs_access_calc_mask(u32 access_result)
2386+
{
2387+
int mask = 0;
2388+
2389+
if (access_result & NFS_MAY_READ)
2390+
mask |= MAY_READ;
2391+
if (access_result & NFS_MAY_WRITE)
2392+
mask |= MAY_WRITE;
2393+
if (access_result & NFS_MAY_LOOKUP)
2394+
mask |= MAY_EXEC;
2395+
if (access_result & NFS_MAY_EXECUTE)
2396+
mask |= MAY_EXEC;
2397+
return mask;
2398+
}
2399+
23782400
void nfs_access_set_mask(struct nfs_access_entry *entry, u32 access_result)
23792401
{
2380-
entry->mask = 0;
2381-
if (access_result & NFS4_ACCESS_READ)
2382-
entry->mask |= MAY_READ;
2383-
if (access_result &
2384-
(NFS4_ACCESS_MODIFY | NFS4_ACCESS_EXTEND | NFS4_ACCESS_DELETE))
2385-
entry->mask |= MAY_WRITE;
2386-
if (access_result & (NFS4_ACCESS_LOOKUP|NFS4_ACCESS_EXECUTE))
2387-
entry->mask |= MAY_EXEC;
2402+
entry->mask = nfs_access_calc_mask(access_result);
23882403
}
23892404
EXPORT_SYMBOL_GPL(nfs_access_set_mask);
23902405

0 commit comments

Comments
 (0)