afs: change afs_nfs{2,3}_dispatcher signature 88/12988/3
authorMichael Meffie <mmeffie@sinenomine.net>
Fri, 30 Mar 2018 03:32:40 +0000 (23:32 -0400)
committerBenjamin Kaduk <kaduk@mit.edu>
Tue, 14 Aug 2018 22:29:13 +0000 (18:29 -0400)
The fourth argument of the afs_nfs{2,3}_dispatcher functions is a pointer to a
pointer to a exportinfo structure.  However, this argument is not an output
argument, so the extra level of indirection is unnecessary.  A separate local
variable is used as an output argument to the afs_nfsclient_reqhandler call
within the dispatchers, which is not passed back to the afs_nfs{2,3}_dispatcher
caller.

In anticipation of other changes to fix warning messages, simplify the
signature of the afs_nfs{2,3}_dispatcher functions to avoid taking the address
of the exportinfo structure when calling afs_nfs{2,3}_dispatcher.

Change-Id: I6fb1a190e6aab286bfac41df783688a0be46a21f
Reviewed-on: https://gerrit.openafs.org/12988
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

src/afs/afs_nfsdisp.c

index 8eef43b..ef732d5 100644 (file)
@@ -253,7 +253,7 @@ acl2_to_afs_call(int which, caddr_t * args, fhandle_t ** fhpp)
 
 int
 afs_nfs2_dispatcher(int type, afs_int32 which, char *argp,
-                   struct exportinfo **expp, struct svc_req *rp,
+                   struct exportinfo *exp, struct svc_req *rp,
                    afs_ucred_t *crp)
 {
     afs_int32 call = 0;
@@ -296,8 +296,8 @@ afs_nfs2_dispatcher(int type, afs_int32 which, char *argp,
 
        /* We ran */
        call = 1;
-       if (!once && *expp) {
-           afs_nobody = (*expp)->exi_export.ex_anon;
+       if (!once && exp) {
+           afs_nobody = exp->exi_export.ex_anon;
            once = 1;
        }
        code =
@@ -386,7 +386,7 @@ afs_nfs2_getattr(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_GETATTR, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_GETATTR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -401,7 +401,7 @@ afs_nfs2_setattr(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_SETATTR, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_SETATTR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -416,7 +416,7 @@ afs_nfs2_lookup(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_LOOKUP, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_LOOKUP, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else {
@@ -434,7 +434,7 @@ afs_nfs2_readlink(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_READLINK, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_READLINK, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -449,7 +449,7 @@ afs_nfs2_read(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_READ, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_READ, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -464,7 +464,7 @@ afs_nfs2_write(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_WRITE, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_WRITE, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -479,7 +479,7 @@ afs_nfs2_create(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_CREATE, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_CREATE, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else {
@@ -497,7 +497,7 @@ afs_nfs2_remove(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_REMOVE, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_REMOVE, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -512,7 +512,7 @@ afs_nfs2_rename(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_RENAME, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_RENAME, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -527,7 +527,7 @@ afs_nfs2_link(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_LINK, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_LINK, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -542,7 +542,7 @@ afs_nfs2_symlink(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_SYMLINK, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_SYMLINK, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -557,7 +557,7 @@ afs_nfs2_mkdir(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_MKDIR, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_MKDIR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else {
@@ -575,7 +575,7 @@ afs_nfs2_rmdir(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_RMDIR, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_RMDIR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -590,7 +590,7 @@ afs_nfs2_readdir(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_READDIR, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_READDIR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -605,7 +605,7 @@ afs_nfs2_statfs(char *args, char *xp, char *exp, char *rp, char *crp)
     u_int call;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs2_dispatcher(0, RFS_STATFS, (char *)args, &exp, rp, crp);
+    call = afs_nfs2_dispatcher(0, RFS_STATFS, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -642,7 +642,7 @@ afs_acl2_getacl(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs2_dispatcher(1, ACLPROC2_GETACL, (char *)args, &exp, rp, crp);
+       afs_nfs2_dispatcher(1, ACLPROC2_GETACL, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -659,7 +659,7 @@ afs_acl2_setacl(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs2_dispatcher(1, ACLPROC2_SETACL, (char *)args, &exp, rp, crp);
+       afs_nfs2_dispatcher(1, ACLPROC2_SETACL, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -676,7 +676,7 @@ afs_acl2_getattr(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs2_dispatcher(1, ACLPROC2_GETATTR, (char *)args, &exp, rp, crp);
+       afs_nfs2_dispatcher(1, ACLPROC2_GETATTR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -693,7 +693,7 @@ afs_acl2_access(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs2_dispatcher(1, ACLPROC2_ACCESS, (char *)args, &exp, rp, crp);
+       afs_nfs2_dispatcher(1, ACLPROC2_ACCESS, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -711,7 +711,7 @@ afs_acl2_getxattrdir(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs2_dispatcher(1, ACLPROC2_GETXATTRDIR, (char *)args, &exp, rp, crp);
+       afs_nfs2_dispatcher(1, ACLPROC2_GETXATTRDIR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs2_noaccess((struct afs_nfs2_resp *)xp);
     else
@@ -995,7 +995,7 @@ acl3_to_afs_call(int which, caddr_t * args, nfs_fh3 ** fhpp)
 
 int
 afs_nfs3_dispatcher(int type, afs_int32 which, char *argp,
-                   struct exportinfo **expp, struct svc_req *rp,
+                   struct exportinfo *exp, struct svc_req *rp,
                    afs_ucred_t *crp)
 {
     afs_int32 call = 0;
@@ -1040,8 +1040,8 @@ afs_nfs3_dispatcher(int type, afs_int32 which, char *argp,
                   ICL_TYPE_FID, &Sfid);
 
        call = 1;
-       if (!once && *expp) {
-           afs_nobody = (*expp)->exi_export.ex_anon;
+       if (!once && exp) {
+           afs_nobody = exp->exi_export.ex_anon;
            once = 1;
        }
        code =
@@ -1112,7 +1112,7 @@ afs_nfs3_getattr(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_GETATTR, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_GETATTR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1130,7 +1130,7 @@ afs_nfs3_setattr(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_SETATTR, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_SETATTR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1148,7 +1148,7 @@ afs_nfs3_lookup(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_LOOKUP, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_LOOKUP, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else {
@@ -1171,7 +1171,7 @@ afs_nfs3_access(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_ACCESS, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_ACCESS, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1189,7 +1189,7 @@ afs_nfs3_readlink(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_READLINK, (char *)args, &exp, rp,
+       afs_nfs3_dispatcher(0, NFSPROC3_READLINK, (char *)args, exp, rp,
                            crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
@@ -1207,7 +1207,7 @@ afs_nfs3_read(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_nfs3_resp dummy;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs3_dispatcher(0, NFSPROC3_READ, (char *)args, &exp, rp, crp);
+    call = afs_nfs3_dispatcher(0, NFSPROC3_READ, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1225,7 +1225,7 @@ afs_nfs3_write(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_WRITE, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_WRITE, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1243,7 +1243,7 @@ afs_nfs3_create(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_CREATE, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_CREATE, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else {
@@ -1266,7 +1266,7 @@ afs_nfs3_mkdir(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_MKDIR, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_MKDIR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else {
@@ -1289,7 +1289,7 @@ afs_nfs3_symlink(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_SYMLINK, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_SYMLINK, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else {
@@ -1312,7 +1312,7 @@ afs_nfs3_mknod(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_MKNOD, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_MKNOD, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else {
@@ -1335,7 +1335,7 @@ afs_nfs3_remove(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_REMOVE, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_REMOVE, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1353,7 +1353,7 @@ afs_nfs3_rmdir(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_RMDIR, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_RMDIR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1371,7 +1371,7 @@ afs_nfs3_rename(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_RENAME, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_RENAME, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1388,7 +1388,7 @@ afs_nfs3_link(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_nfs3_resp dummy;
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
-    call = afs_nfs3_dispatcher(0, NFSPROC3_LINK, (char *)args, &exp, rp, crp);
+    call = afs_nfs3_dispatcher(0, NFSPROC3_LINK, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1406,7 +1406,7 @@ afs_nfs3_readdir(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_READDIR, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_READDIR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1424,7 +1424,7 @@ afs_nfs3_readdirplus(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_READDIRPLUS, (char *)args, &exp, rp,
+       afs_nfs3_dispatcher(0, NFSPROC3_READDIRPLUS, (char *)args, exp, rp,
                            crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
@@ -1445,7 +1445,7 @@ afs_nfs3_fsstat(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_FSSTAT, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_FSSTAT, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1463,7 +1463,7 @@ afs_nfs3_fsinfo(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_FSINFO, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_FSINFO, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1481,7 +1481,7 @@ afs_nfs3_pathconf(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_PATHCONF, (char *)args, &exp, rp,
+       afs_nfs3_dispatcher(0, NFSPROC3_PATHCONF, (char *)args, exp, rp,
                            crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
@@ -1500,7 +1500,7 @@ afs_nfs3_commit(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(0, NFSPROC3_COMMIT, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(0, NFSPROC3_COMMIT, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1542,7 +1542,7 @@ afs_acl3_getacl(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(1, ACLPROC3_GETACL, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(1, ACLPROC3_GETACL, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1559,7 +1559,7 @@ afs_acl3_setacl(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(1, ACLPROC3_SETACL, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(1, ACLPROC3_SETACL, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else
@@ -1577,7 +1577,7 @@ afs_acl3_getxattrdir(char *args, char *xp, char *exp, char *rp, char *crp)
     afs_ucred_t *svcred = curthread->t_cred;
     curthread->t_cred = (afs_ucred_t *)crp;
     call =
-       afs_nfs3_dispatcher(1, ACLPROC3_GETXATTRDIR, (char *)args, &exp, rp, crp);
+       afs_nfs3_dispatcher(1, ACLPROC3_GETXATTRDIR, (char *)args, exp, rp, crp);
     if (call > 1)
        afs_nfs3_noaccess((struct afs_nfs3_resp *)xp);
     else