nfsd: consolidate set_access and set_deny
These functions are identical. Also, rename them to bmap_to_share_mode to better reflect what they do, and have them just return the result instead of passing in a pointer to the storage location. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
f07ea10dc8
commit
5ae037e599
|
@ -448,34 +448,24 @@ static struct list_head close_lru;
|
|||
*
|
||||
* which we should reject.
|
||||
*/
|
||||
static void
|
||||
set_access(unsigned int *access, unsigned long bmap) {
|
||||
static unsigned int
|
||||
bmap_to_share_mode(unsigned long bmap) {
|
||||
int i;
|
||||
unsigned int access = 0;
|
||||
|
||||
*access = 0;
|
||||
for (i = 1; i < 4; i++) {
|
||||
if (test_bit(i, &bmap))
|
||||
*access |= i;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
set_deny(unsigned int *deny, unsigned long bmap) {
|
||||
int i;
|
||||
|
||||
*deny = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (test_bit(i, &bmap))
|
||||
*deny |= i ;
|
||||
access |= i;
|
||||
}
|
||||
return access;
|
||||
}
|
||||
|
||||
static int
|
||||
test_share(struct nfs4_ol_stateid *stp, struct nfsd4_open *open) {
|
||||
unsigned int access, deny;
|
||||
|
||||
set_access(&access, stp->st_access_bmap);
|
||||
set_deny(&deny, stp->st_deny_bmap);
|
||||
access = bmap_to_share_mode(stp->st_access_bmap);
|
||||
deny = bmap_to_share_mode(stp->st_deny_bmap);
|
||||
if ((access & open->op_share_deny) || (deny & open->op_share_access))
|
||||
return 0;
|
||||
return 1;
|
||||
|
|
Loading…
Reference in New Issue