J. Bruce Fields wrote: > On Mon, Nov 02, 2009 at 04:59:07PM -0500, Peter Staubach wrote: >> Hi. >> >> Here is a patch to modify the NFS server to register the NFS_ACL >> services with the rpcbind daemon. This allows the client to >> ping for the existence of the NFS_ACL support via commands such >> as "rpcinfo -t <server> nfs_acl". >> >> This patch also modifies the NFS_ACL support so that responses >> to version 2 NULLPROC requests can be made. >> >> The changelog for the patch which turned off this functionality >> mentioned something about not registering the NFS_ACL as being >> part of some tradition. I can't find this tradition and the >> only other implementation which supports NFS_ACL does register >> them with the rpcbind daemon. >> >> Thanx... >> >> ps >> >> Signed-off-by: Peter Staubach <staubach@xxxxxxxxxx> >> >> --- linux-2.6.31.i686/fs/nfsd/nfs2acl.c.org >> +++ linux-2.6.31.i686/fs/nfsd/nfs2acl.c >> @@ -217,6 +217,16 @@ static int nfsaclsvc_decode_accessargs(s >> * XDR encode functions >> */ >> >> +/* >> + * There must be an encoding function for void results so svc_process >> + * will work properly. >> + */ >> +int >> +nfsaclsvc_encode_voidres(struct svc_rqst *rqstp, __be32 *p, void *dummy) >> +{ >> + return xdr_ressize_check(rqstp, p); >> +} > > Out of curiosity: have you tested a null rpc? > Yup. "rpcinfo -t <server> nfs_acl" works like a charm with this patch applied for both versions 2 and 3. > Also, doesn't v3 have the same problem? > Nope. It already had a similar XDR routine. Which is similar to the NFS XDR routine to do the same sort of thing. I suppose that someday, we could clean them up, but these routines aren't doing any harm for the moment. Thanx... ps > --b. > >> + >> /* GETACL */ >> static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p, >> struct nfsd3_getaclres *resp) >> @@ -308,7 +318,6 @@ static int nfsaclsvc_release_access(stru >> } >> >> #define nfsaclsvc_decode_voidargs NULL >> -#define nfsaclsvc_encode_voidres NULL >> #define nfsaclsvc_release_void NULL >> #define nfsd3_fhandleargs nfsd_fhandle >> #define nfsd3_attrstatres nfsd_attrstat >> @@ -346,5 +355,5 @@ struct svc_version nfsd_acl_version2 = { >> .vs_proc = nfsd_acl_procedures2, >> .vs_dispatch = nfsd_dispatch, >> .vs_xdrsize = NFS3_SVC_XDRSIZE, >> - .vs_hidden = 1, >> + .vs_hidden = 0, >> }; >> --- linux-2.6.31.i686/fs/nfsd/nfs3acl.c.org >> +++ linux-2.6.31.i686/fs/nfsd/nfs3acl.c >> @@ -264,6 +264,6 @@ struct svc_version nfsd_acl_version3 = { >> .vs_proc = nfsd_acl_procedures3, >> .vs_dispatch = nfsd_dispatch, >> .vs_xdrsize = NFS3_SVC_XDRSIZE, >> - .vs_hidden = 1, >> + .vs_hidden = 0, >> }; >> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html