Re: [PATCH] gssd: Convert 'rdma' to 'tcp' protocol

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

 




On 05/14/2016 03:51 PM, Chuck Lever wrote:
> 
>> On May 14, 2016, at 12:29 PM, Steve Dickson <SteveD@xxxxxxxxxx> wrote:
>>
>>
>>
>> On 05/04/2016 10:43 AM, Chuck Lever wrote:
>>> The kernel NFS client specifies 'rdma' as the transport protocol for
>>> NFS/RDMA mounts. This is a generic display token, probably not
>>> something the kernel should lie about. The kernel uses it to form
>>> NFSv4 client IDs, for example.
>>>
>>> Until gssd can speak RPC-over-RDMA, convert 'rdma' to 'tcp' in
>>> kernel gss upcalls.
>>>
>>> This means that the Linux NFS client requires an NFS/TCP service on
>>> an NFS/RDMA server when establishing a GSS context for proto=rdma
>>> mount points. This is probably not an onerous requirement for the
>>> time being.
>>>
>>> Eventually user space support for RPC-over-RDMA might be introduced,
>>> and gssd can use that for context establishment.
>> Shouldn't we log something tell to the user this is happening??
> 
> I don't understand what "this" refers to.
> 
> There's no error here, and there's nothing a user or admin
> can or should do to change the situation.
> 
> What am I missing?
My bad... for some reason I thought this conversion was happening
in the mount code, instead its happening in the processing of
an upcall... I understand what's going on... sorry for the noise... 

Committed! 

steved.
 
> 
> 
>> steved.
>>>
>>> Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
>>> ---
>>> utils/gssd/gssd.c |   16 ++++++++++++++++
>>> 1 file changed, 16 insertions(+)
>>>
>>> diff --git a/utils/gssd/gssd.c b/utils/gssd/gssd.c
>>> index 7ba27b1..51b2cd7 100644
>>> --- a/utils/gssd/gssd.c
>>> +++ b/utils/gssd/gssd.c
>>> @@ -301,6 +301,22 @@ gssd_read_service_info(int dirfd, struct clnt_info *clp)
>>> 		goto fail;
>>> 	}
>>>
>>> +	/*
>>> +	 * The user space RPC library has no support for
>>> +	 * RPC-over-RDMA at this time, so change 'rdma'
>>> +	 * to 'tcp', and '20049' to '2049'.
>>> +	 */
>>> +	if (strcmp(protoname, "rdma") == 0) {
>>> +		free(protoname);
>>> +		protoname = strdup("tcp");
>>> +		if (!protoname)
>>> +			goto fail;
>>> +		free(port);
>>> +		port = strdup("2049");
>>> +		if (!port)
>>> +			goto fail;
>>> +	}
>>> +
>>> 	if (!gssd_addrstr_to_sockaddr((struct sockaddr *)&clp->addr,
>>> 				 address, port ? port : ""))
>>> 		goto fail;
>>>
>> --
>> 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
> 
> --
> Chuck Lever
> 
> 
> 
--
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