Skip to content

NFS/SUNRPC: Client needs to handle session trunking group membership changes

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2131767
Tested: Manually tested by doing I/O on a trunked NFS mount and moving one of the NFS server's IP addresses to a different NFS server. On an unpatched kernel, the NFS client gets stuck in an NFS4ERR_BADSESSION loop. On a patched kernel, the NFS client recovers. Also tested with cthon and xfstests.

When an NFS server leaves an established trunked group, the NFS client will receive NFS4ERR_BADSESSION because that server no longer has the session's state. These patches allow the client to recover in that scenario by doing the following. On DESTROY_SESSION, the client will offline all trunked connections it has to the server. On CREATE_SESSION, the client will iterate through offlined connections and probe them for session trunking. If session trunking conditions still hold, then the transport connection will be made active again. Otherwise, it will be deleted from the trunked group.

Signed-off-by: Scott Mayhew smayhew@redhat.com

Merge request reports