#define nfsd3_voidres          nfsd3_voidargs
 struct nfsd3_voidargs { int dummy; };
 
-#define PROC(name, argt, rest, relt, cache, respsize)  \
- { (svc_procfunc) nfsacld_proc_##name,         \
-   (kxdrproc_t) nfsaclsvc_decode_##argt##args, \
-   (kxdrproc_t) nfsaclsvc_encode_##rest##res,  \
-   (kxdrproc_t) nfsaclsvc_release_##relt,              \
-   sizeof(struct nfsd3_##argt##args),          \
-   sizeof(struct nfsd3_##rest##res),           \
-   0,                                          \
-   cache,                                      \
-   respsize,                                   \
- }
+#define PROC(name, argt, rest, relt, cache, respsize)                  \
+{                                                                      \
+       .pc_func        = (svc_procfunc) nfsacld_proc_##name,           \
+       .pc_decode      = (kxdrproc_t) nfsaclsvc_decode_##argt##args,   \
+       .pc_encode      = (kxdrproc_t) nfsaclsvc_encode_##rest##res,    \
+       .pc_release     = (kxdrproc_t) nfsaclsvc_release_##relt,        \
+       .pc_argsize     = sizeof(struct nfsd3_##argt##args),            \
+       .pc_ressize     = sizeof(struct nfsd3_##rest##res),             \
+       .pc_cachetype   = cache,                                        \
+       .pc_xdrressize  = respsize,                                     \
+}
 
 #define ST 1           /* status*/
 #define AT 21          /* attributes */
 
 #define nfsd3_voidres                  nfsd3_voidargs
 struct nfsd3_voidargs { int dummy; };
 
-#define PROC(name, argt, rest, relt, cache, respsize)  \
- { (svc_procfunc) nfsd3_proc_##name,           \
-   (kxdrproc_t) nfs3svc_decode_##argt##args,   \
-   (kxdrproc_t) nfs3svc_encode_##rest##res,    \
-   (kxdrproc_t) nfs3svc_release_##relt,                \
-   sizeof(struct nfsd3_##argt##args),          \
-   sizeof(struct nfsd3_##rest##res),           \
-   0,                                          \
-   cache,                                      \
-   respsize,                                   \
- }
+#define PROC(name, argt, rest, relt, cache, respsize)                  \
+{                                                                      \
+       .pc_func        = (svc_procfunc) nfsd3_proc_##name,             \
+       .pc_decode      = (kxdrproc_t) nfs3svc_decode_##argt##args,     \
+       .pc_encode      = (kxdrproc_t) nfs3svc_encode_##rest##res,      \
+       .pc_release     = (kxdrproc_t) nfs3svc_release_##relt,          \
+       .pc_argsize     = sizeof(struct nfsd3_##argt##args),            \
+       .pc_ressize     = sizeof(struct nfsd3_##rest##res),             \
+       .pc_cachetype   = cache,                                        \
+       .pc_xdrressize  = respsize,                                     \
+}
 
 #define ST 1           /* status*/
 #define AT 21          /* attributes */
 
  * COMPOUND call.
  */
 static __be32
-nfsd4_proc_compound(struct svc_rqst *rqstp,
-                   struct nfsd4_compoundargs *args,
-                   struct nfsd4_compoundres *resp)
+nfsd4_proc_compound(struct svc_rqst *rqstp, void *arg, void *res)
 {
+       struct nfsd4_compoundargs *args = arg;
+       struct nfsd4_compoundres *resp = res;
        struct nfsd4_op *op;
        struct nfsd4_operation *opdesc;
        struct nfsd4_compound_state *cstate = &resp->cstate;
 
 static struct svc_procedure            nfsd_procedures4[2] = {
        [NFSPROC4_NULL] = {
-               .pc_func = (svc_procfunc) nfsd4_proc_null,
+               .pc_func = nfsd4_proc_null,
                .pc_encode = (kxdrproc_t) nfs4svc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd4_voidargs),
                .pc_ressize = sizeof(struct nfsd4_voidres),
                .pc_xdrressize = 1,
        },
        [NFSPROC4_COMPOUND] = {
-               .pc_func = (svc_procfunc) nfsd4_proc_compound,
+               .pc_func = nfsd4_proc_compound,
                .pc_decode = (kxdrproc_t) nfs4svc_decode_compoundargs,
                .pc_encode = (kxdrproc_t) nfs4svc_encode_compoundres,
                .pc_argsize = sizeof(struct nfsd4_compoundargs),