Clone
Lucas Holt
committed
on 22 Nov
Change the xid for client side krpc over UDP to a global value.
Without this patch, the xid used for the client side krpc requests over
UDP … Show more
Change the xid for client side krpc over UDP to a global value.

Without this patch, the xid used for the client side krpc requests over

UDP was initialized for each "connection". A "connection" for UDP is

rather sketchy and for the kernel NLM a new one is created every 2minutes.

A problem with client side interoperability with a Netapp server for the NLM

was reported and it is believed to be caused by reuse of the same xid.

Although this was never completely diagnosed by the reporter, I could see

how the same xid might get reused, since it is initialized to a value

based on the TOD clock every two minutes.

I suspect initializing the value for every "connection" was inherited from

userland library code, where having a global xid was not practical.

However, implementing a global "xid" for the kernel rpc is straightforward

and will ensure that an xid value is not reused for a long time. This

patch does that and is hoped it will fix the Netapp interoperability

problem.

Obtained from: FreeBSD

Show less