On Mon, Sep 15, 2008 at 04:27:23PM -0500, Chuck Lever wrote:
> We've recently determined that this is incorrect behavior. In the
> TI-RPC world, "udp6" is not meant to imply that the registered RPC
> service handles requests from AF_INET as well, even if the listener
> socket does address mapping. "udp" and "udp6" are entirely separate
> capabilities, and must be registered separately.
> The Linux kernel, unlike TI-RPC, leverages address mapping to allow a
> single listener socket to handle requests for both AF_INET and AF_INET6.
> This is still OK, but the kernel currently assumes registering "udp6"
> will cover "udp" as well. It registers only "udp6" for it's AF_INET6
> services, even though they handle both AF_INET and AF_INET6 on the same
> So svc_register() actually needs to register both "udp" and "udp6"
> explicitly (and likewise for TCP). Until rpcbind is fixed, the
> kernel can ignore the return code for the second RPCB_SET call.
Looks fine, thanks, applied.
> Please merge this with commit 15231312:
> SUNRPC: Support IPv6 when registering kernel RPC services
That was actually a pretty helpful commit message; I'm tempted just to
leave this unmerged and not worry too much about the briefly-existing
bug in this case.