提交 ba5a6a19 编写于 作者: J J. Bruce Fields 提交者: Linus Torvalds

[PATCH] knfsd: nfsd4: fix some open argument tests

These tests always returned true; clearly that wasn't what was intended.

In keeping with kernel style, make them functions instead of macros while
we're at it.
Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: NNeil Brown <neilb@suse.de>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 1df0cada
...@@ -1237,8 +1237,15 @@ find_file(struct inode *ino) ...@@ -1237,8 +1237,15 @@ find_file(struct inode *ino)
return NULL; return NULL;
} }
#define TEST_ACCESS(x) ((x > 0 || x < 4)?1:0) static int access_valid(u32 x)
#define TEST_DENY(x) ((x >= 0 || x < 5)?1:0) {
return (x > 0 && x < 4);
}
static int deny_valid(u32 x)
{
return (x >= 0 && x < 5);
}
static void static void
set_access(unsigned int *access, unsigned long bmap) { set_access(unsigned int *access, unsigned long bmap) {
...@@ -1745,7 +1752,8 @@ nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nf ...@@ -1745,7 +1752,8 @@ nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nf
int status; int status;
status = nfserr_inval; status = nfserr_inval;
if (!TEST_ACCESS(open->op_share_access) || !TEST_DENY(open->op_share_deny)) if (!access_valid(open->op_share_access)
|| !deny_valid(open->op_share_deny))
goto out; goto out;
/* /*
* Lookup file; if found, lookup stateid and check open request, * Lookup file; if found, lookup stateid and check open request,
...@@ -2317,7 +2325,8 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct n ...@@ -2317,7 +2325,8 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct n
(int)current_fh->fh_dentry->d_name.len, (int)current_fh->fh_dentry->d_name.len,
current_fh->fh_dentry->d_name.name); current_fh->fh_dentry->d_name.name);
if (!TEST_ACCESS(od->od_share_access) || !TEST_DENY(od->od_share_deny)) if (!access_valid(od->od_share_access)
|| !deny_valid(od->od_share_deny))
return nfserr_inval; return nfserr_inval;
nfs4_lock_state(); nfs4_lock_state();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册