[PATCH] NFS3: Calculate 'w' a bit later in nfs3svc_encode_getaclres()
NFS3: Calculate 'w' a bit later in nfs3svc_encode_getaclres()
This is a small performance optimization since we can return before
needing 'w'. It also saves a few bytes of .text :
Before:
text data bss dec hex filename
1632 140 0 1772 6ec fs/nfsd/nfs3acl.o
After:
text data bss dec hex filename
1624 140 0 1764 6e4 fs/nfsd/nfs3acl.o
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
cb65a5ba3d
commit
14d2b59e8c
@@ -171,19 +171,19 @@ static int nfs3svc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p,
|
|||||||
p = nfs3svc_encode_post_op_attr(rqstp, p, &resp->fh);
|
p = nfs3svc_encode_post_op_attr(rqstp, p, &resp->fh);
|
||||||
if (resp->status == 0 && dentry && dentry->d_inode) {
|
if (resp->status == 0 && dentry && dentry->d_inode) {
|
||||||
struct inode *inode = dentry->d_inode;
|
struct inode *inode = dentry->d_inode;
|
||||||
int w = nfsacl_size(
|
|
||||||
(resp->mask & NFS_ACL) ? resp->acl_access : NULL,
|
|
||||||
(resp->mask & NFS_DFACL) ? resp->acl_default : NULL);
|
|
||||||
struct kvec *head = rqstp->rq_res.head;
|
struct kvec *head = rqstp->rq_res.head;
|
||||||
unsigned int base;
|
unsigned int base;
|
||||||
int n;
|
int n;
|
||||||
|
int w;
|
||||||
|
|
||||||
*p++ = htonl(resp->mask);
|
*p++ = htonl(resp->mask);
|
||||||
if (!xdr_ressize_check(rqstp, p))
|
if (!xdr_ressize_check(rqstp, p))
|
||||||
return 0;
|
return 0;
|
||||||
base = (char *)p - (char *)head->iov_base;
|
base = (char *)p - (char *)head->iov_base;
|
||||||
|
|
||||||
rqstp->rq_res.page_len = w;
|
rqstp->rq_res.page_len = w = nfsacl_size(
|
||||||
|
(resp->mask & NFS_ACL) ? resp->acl_access : NULL,
|
||||||
|
(resp->mask & NFS_DFACL) ? resp->acl_default : NULL);
|
||||||
while (w > 0) {
|
while (w > 0) {
|
||||||
if (!rqstp->rq_respages[rqstp->rq_resused++])
|
if (!rqstp->rq_respages[rqstp->rq_resused++])
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user