clnt_dg.c

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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

Sync with FreeBSD 11-stable.

  1. … 3187 more files in changeset.
sync with freebsd 10

  1. … 45 more files in changeset.
tag and remove dead code

  1. … 41 more files in changeset.
sync with freebsd 9 stable.

  1. … 2449 more files in changeset.
start the kernel lock manager work

  1. … 118 more files in changeset.