SUNRPC: Don't return EPROTONOSUPPORT in svc_register()'s helpers
The RPC client returns -EPROTONOSUPPORT if there is a protocol version mismatch (ie the remote RPC server doesn't support the RPC protocol version sent by the client). Helpers for the svc_register() function return -EPROTONOSUPPORT if they don't recognize the passed-in IPPROTO_ value. These are two entirely different failure modes. Have the helpers return -ENOPROTOOPT instead of -EPROTONOSUPPORT. This will allow callers to determine more precisely what the underlying problem is, and decide to report or recover appropriately. This patch is part of a series that addresses http://bugzilla.kernel.org/show_bug.cgi?id=12256 Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Родитель
fc28decdc9
Коммит
ba5c35e0c7
|
@ -749,7 +749,7 @@ static int __svc_rpcb_register4(const u32 program, const u32 version,
|
|||
netid = RPCBIND_NETID_TCP;
|
||||
break;
|
||||
default:
|
||||
return -EPROTONOSUPPORT;
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
|
||||
return rpcb_v4_register(program, version,
|
||||
|
@ -785,7 +785,7 @@ static int __svc_rpcb_register6(const u32 program, const u32 version,
|
|||
netid = RPCBIND_NETID_TCP6;
|
||||
break;
|
||||
default:
|
||||
return -EPROTONOSUPPORT;
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
|
||||
return rpcb_v4_register(program, version,
|
||||
|
|
Загрузка…
Ссылка в новой задаче