diff options
| author | Jesper Juhl <jesper.juhl@gmail.com> | 2006-12-08 02:39:39 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 08:29:01 -0800 | 
| commit | cb65a5ba3dcef3184ef1ba026b1e268bd1a9323f (patch) | |
| tree | db13839b65b036ef7d2cf3cf596b8512fe1b7f48 | |
| parent | 4b75f78edcab291eb29fe9a205cbf7b80c1c644f (diff) | |
| download | olio-linux-3.10-cb65a5ba3dcef3184ef1ba026b1e268bd1a9323f.tar.xz olio-linux-3.10-cb65a5ba3dcef3184ef1ba026b1e268bd1a9323f.zip  | |
[PATCH] NFS2: Calculate 'w' a bit later in nfsaclsvc_encode_getaclres()
NFS2: Calculate 'w' a bit later in nfsaclsvc_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
           2406     212       0    2618     a3a fs/nfsd/nfs2acl.o
      After:
           text    data     bss     dec     hex filename
           2400     212       0    2612     a34 fs/nfsd/nfs2acl.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>
| -rw-r--r-- | fs/nfsd/nfs2acl.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/nfsd/nfs2acl.c b/fs/nfsd/nfs2acl.c index e3eca081698..edde5dc5f79 100644 --- a/fs/nfsd/nfs2acl.c +++ b/fs/nfsd/nfs2acl.c @@ -222,12 +222,10 @@ static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p,  {  	struct dentry *dentry = resp->fh.fh_dentry;  	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;  	unsigned int base;  	int n; +	int w;  	if (dentry == NULL || dentry->d_inode == NULL)  		return 0; @@ -239,7 +237,9 @@ static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p,  		return 0;  	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) {  		if (!rqstp->rq_respages[rqstp->rq_resused++])  			return 0;  |