.pc_decode = nlm4svc_decode_void,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_void),
+               .pc_argzero = sizeof(struct nlm_void),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "NULL",
                .pc_decode = nlm4svc_decode_testargs,
                .pc_encode = nlm4svc_encode_testres,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St+2+No+Rg,
                .pc_name = "TEST",
                .pc_decode = nlm4svc_decode_lockargs,
                .pc_encode = nlm4svc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "LOCK",
                .pc_decode = nlm4svc_decode_cancargs,
                .pc_encode = nlm4svc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "CANCEL",
                .pc_decode = nlm4svc_decode_unlockargs,
                .pc_encode = nlm4svc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "UNLOCK",
                .pc_decode = nlm4svc_decode_testargs,
                .pc_encode = nlm4svc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "GRANTED",
                .pc_decode = nlm4svc_decode_testargs,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "TEST_MSG",
                .pc_decode = nlm4svc_decode_lockargs,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "LOCK_MSG",
                .pc_decode = nlm4svc_decode_cancargs,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "CANCEL_MSG",
                .pc_decode = nlm4svc_decode_unlockargs,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "UNLOCK_MSG",
                .pc_decode = nlm4svc_decode_testargs,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "GRANTED_MSG",
                .pc_decode = nlm4svc_decode_void,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "TEST_RES",
                .pc_decode = nlm4svc_decode_void,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "LOCK_RES",
                .pc_decode = nlm4svc_decode_void,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "CANCEL_RES",
                .pc_decode = nlm4svc_decode_void,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "UNLOCK_RES",
                .pc_decode = nlm4svc_decode_res,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "GRANTED_RES",
                .pc_decode = nlm4svc_decode_reboot,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_reboot),
+               .pc_argzero = sizeof(struct nlm_reboot),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "SM_NOTIFY",
                .pc_decode = nlm4svc_decode_void,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_void),
+               .pc_argzero = sizeof(struct nlm_void),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = 0,
                .pc_name = "UNUSED",
                .pc_decode = nlm4svc_decode_void,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_void),
+               .pc_argzero = sizeof(struct nlm_void),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = 0,
                .pc_name = "UNUSED",
                .pc_decode = nlm4svc_decode_void,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_void),
+               .pc_argzero = sizeof(struct nlm_void),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = 0,
                .pc_name = "UNUSED",
                .pc_decode = nlm4svc_decode_shareargs,
                .pc_encode = nlm4svc_encode_shareres,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St+1,
                .pc_name = "SHARE",
                .pc_decode = nlm4svc_decode_shareargs,
                .pc_encode = nlm4svc_encode_shareres,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St+1,
                .pc_name = "UNSHARE",
                .pc_decode = nlm4svc_decode_lockargs,
                .pc_encode = nlm4svc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "NM_LOCK",
                .pc_decode = nlm4svc_decode_notify,
                .pc_encode = nlm4svc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "FREE_ALL",
 
                .pc_decode = nlmsvc_decode_void,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_void),
+               .pc_argzero = sizeof(struct nlm_void),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "NULL",
                .pc_decode = nlmsvc_decode_testargs,
                .pc_encode = nlmsvc_encode_testres,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St+2+No+Rg,
                .pc_name = "TEST",
                .pc_decode = nlmsvc_decode_lockargs,
                .pc_encode = nlmsvc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "LOCK",
                .pc_decode = nlmsvc_decode_cancargs,
                .pc_encode = nlmsvc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "CANCEL",
                .pc_decode = nlmsvc_decode_unlockargs,
                .pc_encode = nlmsvc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "UNLOCK",
                .pc_decode = nlmsvc_decode_testargs,
                .pc_encode = nlmsvc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "GRANTED",
                .pc_decode = nlmsvc_decode_testargs,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "TEST_MSG",
                .pc_decode = nlmsvc_decode_lockargs,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "LOCK_MSG",
                .pc_decode = nlmsvc_decode_cancargs,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "CANCEL_MSG",
                .pc_decode = nlmsvc_decode_unlockargs,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "UNLOCK_MSG",
                .pc_decode = nlmsvc_decode_testargs,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "GRANTED_MSG",
                .pc_decode = nlmsvc_decode_void,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "TEST_RES",
                .pc_decode = nlmsvc_decode_void,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "LOCK_RES",
                .pc_decode = nlmsvc_decode_void,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "CANCEL_RES",
                .pc_decode = nlmsvc_decode_void,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "UNLOCK_RES",
                .pc_decode = nlmsvc_decode_res,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_res),
+               .pc_argzero = sizeof(struct nlm_res),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "GRANTED_RES",
                .pc_decode = nlmsvc_decode_reboot,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_reboot),
+               .pc_argzero = sizeof(struct nlm_reboot),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "SM_NOTIFY",
                .pc_decode = nlmsvc_decode_void,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_void),
+               .pc_argzero = sizeof(struct nlm_void),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "UNUSED",
                .pc_decode = nlmsvc_decode_void,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_void),
+               .pc_argzero = sizeof(struct nlm_void),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "UNUSED",
                .pc_decode = nlmsvc_decode_void,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_void),
+               .pc_argzero = sizeof(struct nlm_void),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = St,
                .pc_name = "UNUSED",
                .pc_decode = nlmsvc_decode_shareargs,
                .pc_encode = nlmsvc_encode_shareres,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St+1,
                .pc_name = "SHARE",
                .pc_decode = nlmsvc_decode_shareargs,
                .pc_encode = nlmsvc_encode_shareres,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St+1,
                .pc_name = "UNSHARE",
                .pc_decode = nlmsvc_decode_lockargs,
                .pc_encode = nlmsvc_encode_res,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_res),
                .pc_xdrressize = Ck+St,
                .pc_name = "NM_LOCK",
                .pc_decode = nlmsvc_decode_notify,
                .pc_encode = nlmsvc_encode_void,
                .pc_argsize = sizeof(struct nlm_args),
+               .pc_argzero = sizeof(struct nlm_args),
                .pc_ressize = sizeof(struct nlm_void),
                .pc_xdrressize = 0,
                .pc_name = "FREE_ALL",
 
                .pc_func = nfs4_callback_compound,
                .pc_encode = nfs4_encode_void,
                .pc_argsize = 256,
+               .pc_argzero = 256,
                .pc_ressize = 256,
                .pc_xdrressize = NFS4_CALLBACK_BUFSIZE,
                .pc_name = "COMPOUND",
 
                .pc_decode = nfssvc_decode_voidarg,
                .pc_encode = nfssvc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd_voidargs),
+               .pc_argzero = sizeof(struct nfsd_voidargs),
                .pc_ressize = sizeof(struct nfsd_voidres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST,
                .pc_encode = nfsaclsvc_encode_getaclres,
                .pc_release = nfsaclsvc_release_getacl,
                .pc_argsize = sizeof(struct nfsd3_getaclargs),
+               .pc_argzero = sizeof(struct nfsd3_getaclargs),
                .pc_ressize = sizeof(struct nfsd3_getaclres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+1+2*(1+ACL),
                .pc_encode = nfssvc_encode_attrstatres,
                .pc_release = nfssvc_release_attrstat,
                .pc_argsize = sizeof(struct nfsd3_setaclargs),
+               .pc_argzero = sizeof(struct nfsd3_setaclargs),
                .pc_ressize = sizeof(struct nfsd_attrstat),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+AT,
                .pc_encode = nfssvc_encode_attrstatres,
                .pc_release = nfssvc_release_attrstat,
                .pc_argsize = sizeof(struct nfsd_fhandle),
+               .pc_argzero = sizeof(struct nfsd_fhandle),
                .pc_ressize = sizeof(struct nfsd_attrstat),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+AT,
                .pc_encode = nfsaclsvc_encode_accessres,
                .pc_release = nfsaclsvc_release_access,
                .pc_argsize = sizeof(struct nfsd3_accessargs),
+               .pc_argzero = sizeof(struct nfsd3_accessargs),
                .pc_ressize = sizeof(struct nfsd3_accessres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+AT+1,
 
                .pc_decode = nfssvc_decode_voidarg,
                .pc_encode = nfssvc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd_voidargs),
+               .pc_argzero = sizeof(struct nfsd_voidargs),
                .pc_ressize = sizeof(struct nfsd_voidres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST,
                .pc_encode = nfs3svc_encode_getaclres,
                .pc_release = nfs3svc_release_getacl,
                .pc_argsize = sizeof(struct nfsd3_getaclargs),
+               .pc_argzero = sizeof(struct nfsd3_getaclargs),
                .pc_ressize = sizeof(struct nfsd3_getaclres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+1+2*(1+ACL),
                .pc_encode = nfs3svc_encode_setaclres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_setaclargs),
+               .pc_argzero = sizeof(struct nfsd3_setaclargs),
                .pc_ressize = sizeof(struct nfsd3_attrstat),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+pAT,
 
                .pc_decode = nfssvc_decode_voidarg,
                .pc_encode = nfssvc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd_voidargs),
+               .pc_argzero = sizeof(struct nfsd_voidargs),
                .pc_ressize = sizeof(struct nfsd_voidres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST,
                .pc_encode = nfs3svc_encode_getattrres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd_fhandle),
+               .pc_argzero = sizeof(struct nfsd_fhandle),
                .pc_ressize = sizeof(struct nfsd3_attrstatres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+AT,
                .pc_encode = nfs3svc_encode_wccstatres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_sattrargs),
+               .pc_argzero = sizeof(struct nfsd3_sattrargs),
                .pc_ressize = sizeof(struct nfsd3_wccstatres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+WC,
                .pc_encode = nfs3svc_encode_lookupres,
                .pc_release = nfs3svc_release_fhandle2,
                .pc_argsize = sizeof(struct nfsd3_diropargs),
+               .pc_argzero = sizeof(struct nfsd3_diropargs),
                .pc_ressize = sizeof(struct nfsd3_diropres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+FH+pAT+pAT,
                .pc_encode = nfs3svc_encode_accessres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_accessargs),
+               .pc_argzero = sizeof(struct nfsd3_accessargs),
                .pc_ressize = sizeof(struct nfsd3_accessres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+pAT+1,
                .pc_encode = nfs3svc_encode_readlinkres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd_fhandle),
+               .pc_argzero = sizeof(struct nfsd_fhandle),
                .pc_ressize = sizeof(struct nfsd3_readlinkres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+pAT+1+NFS3_MAXPATHLEN/4,
                .pc_encode = nfs3svc_encode_readres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_readargs),
+               .pc_argzero = sizeof(struct nfsd3_readargs),
                .pc_ressize = sizeof(struct nfsd3_readres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+pAT+4+NFSSVC_MAXBLKSIZE/4,
                .pc_encode = nfs3svc_encode_writeres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_writeargs),
+               .pc_argzero = sizeof(struct nfsd3_writeargs),
                .pc_ressize = sizeof(struct nfsd3_writeres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+WC+4,
                .pc_encode = nfs3svc_encode_createres,
                .pc_release = nfs3svc_release_fhandle2,
                .pc_argsize = sizeof(struct nfsd3_createargs),
+               .pc_argzero = sizeof(struct nfsd3_createargs),
                .pc_ressize = sizeof(struct nfsd3_createres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+(1+FH+pAT)+WC,
                .pc_encode = nfs3svc_encode_createres,
                .pc_release = nfs3svc_release_fhandle2,
                .pc_argsize = sizeof(struct nfsd3_mkdirargs),
+               .pc_argzero = sizeof(struct nfsd3_mkdirargs),
                .pc_ressize = sizeof(struct nfsd3_createres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+(1+FH+pAT)+WC,
                .pc_encode = nfs3svc_encode_createres,
                .pc_release = nfs3svc_release_fhandle2,
                .pc_argsize = sizeof(struct nfsd3_symlinkargs),
+               .pc_argzero = sizeof(struct nfsd3_symlinkargs),
                .pc_ressize = sizeof(struct nfsd3_createres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+(1+FH+pAT)+WC,
                .pc_encode = nfs3svc_encode_createres,
                .pc_release = nfs3svc_release_fhandle2,
                .pc_argsize = sizeof(struct nfsd3_mknodargs),
+               .pc_argzero = sizeof(struct nfsd3_mknodargs),
                .pc_ressize = sizeof(struct nfsd3_createres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+(1+FH+pAT)+WC,
                .pc_encode = nfs3svc_encode_wccstatres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_diropargs),
+               .pc_argzero = sizeof(struct nfsd3_diropargs),
                .pc_ressize = sizeof(struct nfsd3_wccstatres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+WC,
                .pc_encode = nfs3svc_encode_wccstatres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_diropargs),
+               .pc_argzero = sizeof(struct nfsd3_diropargs),
                .pc_ressize = sizeof(struct nfsd3_wccstatres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+WC,
                .pc_encode = nfs3svc_encode_renameres,
                .pc_release = nfs3svc_release_fhandle2,
                .pc_argsize = sizeof(struct nfsd3_renameargs),
+               .pc_argzero = sizeof(struct nfsd3_renameargs),
                .pc_ressize = sizeof(struct nfsd3_renameres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+WC+WC,
                .pc_encode = nfs3svc_encode_linkres,
                .pc_release = nfs3svc_release_fhandle2,
                .pc_argsize = sizeof(struct nfsd3_linkargs),
+               .pc_argzero = sizeof(struct nfsd3_linkargs),
                .pc_ressize = sizeof(struct nfsd3_linkres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+pAT+WC,
                .pc_encode = nfs3svc_encode_readdirres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_readdirargs),
+               .pc_argzero = sizeof(struct nfsd3_readdirargs),
                .pc_ressize = sizeof(struct nfsd3_readdirres),
                .pc_cachetype = RC_NOCACHE,
                .pc_name = "READDIR",
                .pc_encode = nfs3svc_encode_readdirres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_readdirplusargs),
+               .pc_argzero = sizeof(struct nfsd3_readdirplusargs),
                .pc_ressize = sizeof(struct nfsd3_readdirres),
                .pc_cachetype = RC_NOCACHE,
                .pc_name = "READDIRPLUS",
                .pc_decode = nfs3svc_decode_fhandleargs,
                .pc_encode = nfs3svc_encode_fsstatres,
                .pc_argsize = sizeof(struct nfsd3_fhandleargs),
+               .pc_argzero = sizeof(struct nfsd3_fhandleargs),
                .pc_ressize = sizeof(struct nfsd3_fsstatres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+pAT+2*6+1,
                .pc_decode = nfs3svc_decode_fhandleargs,
                .pc_encode = nfs3svc_encode_fsinfores,
                .pc_argsize = sizeof(struct nfsd3_fhandleargs),
+               .pc_argzero = sizeof(struct nfsd3_fhandleargs),
                .pc_ressize = sizeof(struct nfsd3_fsinfores),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+pAT+12,
                .pc_decode = nfs3svc_decode_fhandleargs,
                .pc_encode = nfs3svc_encode_pathconfres,
                .pc_argsize = sizeof(struct nfsd3_fhandleargs),
+               .pc_argzero = sizeof(struct nfsd3_fhandleargs),
                .pc_ressize = sizeof(struct nfsd3_pathconfres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+pAT+6,
                .pc_encode = nfs3svc_encode_commitres,
                .pc_release = nfs3svc_release_fhandle,
                .pc_argsize = sizeof(struct nfsd3_commitargs),
+               .pc_argzero = sizeof(struct nfsd3_commitargs),
                .pc_ressize = sizeof(struct nfsd3_commitres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+WC+2,
 
                .pc_decode = nfssvc_decode_voidarg,
                .pc_encode = nfssvc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd_voidargs),
+               .pc_argzero = sizeof(struct nfsd_voidargs),
                .pc_ressize = sizeof(struct nfsd_voidres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = 1,
                .pc_decode = nfs4svc_decode_compoundargs,
                .pc_encode = nfs4svc_encode_compoundres,
                .pc_argsize = sizeof(struct nfsd4_compoundargs),
+               .pc_argzero = sizeof(struct nfsd4_compoundargs),
                .pc_ressize = sizeof(struct nfsd4_compoundres),
                .pc_release = nfsd4_release_compoundargs,
                .pc_cachetype = RC_NOCACHE,
 
                .pc_decode = nfssvc_decode_voidarg,
                .pc_encode = nfssvc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd_voidargs),
+               .pc_argzero = sizeof(struct nfsd_voidargs),
                .pc_ressize = sizeof(struct nfsd_voidres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = 0,
                .pc_encode = nfssvc_encode_attrstatres,
                .pc_release = nfssvc_release_attrstat,
                .pc_argsize = sizeof(struct nfsd_fhandle),
+               .pc_argzero = sizeof(struct nfsd_fhandle),
                .pc_ressize = sizeof(struct nfsd_attrstat),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+AT,
                .pc_encode = nfssvc_encode_attrstatres,
                .pc_release = nfssvc_release_attrstat,
                .pc_argsize = sizeof(struct nfsd_sattrargs),
+               .pc_argzero = sizeof(struct nfsd_sattrargs),
                .pc_ressize = sizeof(struct nfsd_attrstat),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+AT,
                .pc_decode = nfssvc_decode_voidarg,
                .pc_encode = nfssvc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd_voidargs),
+               .pc_argzero = sizeof(struct nfsd_voidargs),
                .pc_ressize = sizeof(struct nfsd_voidres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = 0,
                .pc_encode = nfssvc_encode_diropres,
                .pc_release = nfssvc_release_diropres,
                .pc_argsize = sizeof(struct nfsd_diropargs),
+               .pc_argzero = sizeof(struct nfsd_diropargs),
                .pc_ressize = sizeof(struct nfsd_diropres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+FH+AT,
                .pc_decode = nfssvc_decode_fhandleargs,
                .pc_encode = nfssvc_encode_readlinkres,
                .pc_argsize = sizeof(struct nfsd_fhandle),
+               .pc_argzero = sizeof(struct nfsd_fhandle),
                .pc_ressize = sizeof(struct nfsd_readlinkres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+1+NFS_MAXPATHLEN/4,
                .pc_encode = nfssvc_encode_readres,
                .pc_release = nfssvc_release_readres,
                .pc_argsize = sizeof(struct nfsd_readargs),
+               .pc_argzero = sizeof(struct nfsd_readargs),
                .pc_ressize = sizeof(struct nfsd_readres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+AT+1+NFSSVC_MAXBLKSIZE_V2/4,
                .pc_decode = nfssvc_decode_voidarg,
                .pc_encode = nfssvc_encode_voidres,
                .pc_argsize = sizeof(struct nfsd_voidargs),
+               .pc_argzero = sizeof(struct nfsd_voidargs),
                .pc_ressize = sizeof(struct nfsd_voidres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = 0,
                .pc_encode = nfssvc_encode_attrstatres,
                .pc_release = nfssvc_release_attrstat,
                .pc_argsize = sizeof(struct nfsd_writeargs),
+               .pc_argzero = sizeof(struct nfsd_writeargs),
                .pc_ressize = sizeof(struct nfsd_attrstat),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+AT,
                .pc_encode = nfssvc_encode_diropres,
                .pc_release = nfssvc_release_diropres,
                .pc_argsize = sizeof(struct nfsd_createargs),
+               .pc_argzero = sizeof(struct nfsd_createargs),
                .pc_ressize = sizeof(struct nfsd_diropres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+FH+AT,
                .pc_decode = nfssvc_decode_diropargs,
                .pc_encode = nfssvc_encode_statres,
                .pc_argsize = sizeof(struct nfsd_diropargs),
+               .pc_argzero = sizeof(struct nfsd_diropargs),
                .pc_ressize = sizeof(struct nfsd_stat),
                .pc_cachetype = RC_REPLSTAT,
                .pc_xdrressize = ST,
                .pc_decode = nfssvc_decode_renameargs,
                .pc_encode = nfssvc_encode_statres,
                .pc_argsize = sizeof(struct nfsd_renameargs),
+               .pc_argzero = sizeof(struct nfsd_renameargs),
                .pc_ressize = sizeof(struct nfsd_stat),
                .pc_cachetype = RC_REPLSTAT,
                .pc_xdrressize = ST,
                .pc_decode = nfssvc_decode_linkargs,
                .pc_encode = nfssvc_encode_statres,
                .pc_argsize = sizeof(struct nfsd_linkargs),
+               .pc_argzero = sizeof(struct nfsd_linkargs),
                .pc_ressize = sizeof(struct nfsd_stat),
                .pc_cachetype = RC_REPLSTAT,
                .pc_xdrressize = ST,
                .pc_decode = nfssvc_decode_symlinkargs,
                .pc_encode = nfssvc_encode_statres,
                .pc_argsize = sizeof(struct nfsd_symlinkargs),
+               .pc_argzero = sizeof(struct nfsd_symlinkargs),
                .pc_ressize = sizeof(struct nfsd_stat),
                .pc_cachetype = RC_REPLSTAT,
                .pc_xdrressize = ST,
                .pc_encode = nfssvc_encode_diropres,
                .pc_release = nfssvc_release_diropres,
                .pc_argsize = sizeof(struct nfsd_createargs),
+               .pc_argzero = sizeof(struct nfsd_createargs),
                .pc_ressize = sizeof(struct nfsd_diropres),
                .pc_cachetype = RC_REPLBUFF,
                .pc_xdrressize = ST+FH+AT,
                .pc_decode = nfssvc_decode_diropargs,
                .pc_encode = nfssvc_encode_statres,
                .pc_argsize = sizeof(struct nfsd_diropargs),
+               .pc_argzero = sizeof(struct nfsd_diropargs),
                .pc_ressize = sizeof(struct nfsd_stat),
                .pc_cachetype = RC_REPLSTAT,
                .pc_xdrressize = ST,
                .pc_decode = nfssvc_decode_readdirargs,
                .pc_encode = nfssvc_encode_readdirres,
                .pc_argsize = sizeof(struct nfsd_readdirargs),
+               .pc_argzero = sizeof(struct nfsd_readdirargs),
                .pc_ressize = sizeof(struct nfsd_readdirres),
                .pc_cachetype = RC_NOCACHE,
                .pc_name = "READDIR",
                .pc_decode = nfssvc_decode_fhandleargs,
                .pc_encode = nfssvc_encode_statfsres,
                .pc_argsize = sizeof(struct nfsd_fhandle),
+               .pc_argzero = sizeof(struct nfsd_fhandle),
                .pc_ressize = sizeof(struct nfsd_statfsres),
                .pc_cachetype = RC_NOCACHE,
                .pc_xdrressize = ST+5,
 
        /* XDR free result: */
        void                    (*pc_release)(struct svc_rqst *);
        unsigned int            pc_argsize;     /* argument struct size */
+       unsigned int            pc_argzero;     /* how much of argument to clear */
        unsigned int            pc_ressize;     /* result struct size */
        unsigned int            pc_cachetype;   /* cache info (NFS) */
        unsigned int            pc_xdrressize;  /* maximum size of XDR reply */
 
                goto err_bad_proc;
 
        /* Initialize storage for argp and resp */
-       memset(rqstp->rq_argp, 0, procp->pc_argsize);
+       memset(rqstp->rq_argp, 0, procp->pc_argzero);
        memset(rqstp->rq_resp, 0, procp->pc_ressize);
 
        /* Bump per-procedure stats counter */