Commit 14d2b59e authored by Jesper Juhl's avatar Jesper Juhl Committed by Linus Torvalds

[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: default avatarJesper Juhl <jesper.juhl@gmail.com>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent cb65a5ba
...@@ -171,19 +171,19 @@ static int nfs3svc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p, ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment