Re: [PATCH v2] register NFS_ACL with rpcbind

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux