NFSv4.1: fix handling of backchannel binding in BIND_CONN_TO_SESSION
authorOlga Kornievskaia <olga.kornievskaia@gmail.com>
Fri, 24 Apr 2020 21:45:50 +0000 (17:45 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 6 May 2020 06:15:05 +0000 (08:15 +0200)
commite5744821adc930bc9c09d15883b5c922da5da2f3
treea0fa01128715936952736eb5fad4002934c67466
parent6eb95b35fd393f5cd2cc011be8f0568fe4675539
NFSv4.1: fix handling of backchannel binding in BIND_CONN_TO_SESSION

commit dff58530c4ca8ce7ee5a74db431c6e35362cf682 upstream.

Currently, if the client sends BIND_CONN_TO_SESSION with
NFS4_CDFC4_FORE_OR_BOTH but only gets NFS4_CDFS4_FORE back it ignores
that it wasn't able to enable a backchannel.

To make sure, the client sends BIND_CONN_TO_SESSION as the first
operation on the connections (ie., no other session compounds haven't
been sent before), and if the client's request to bind the backchannel
is not satisfied, then reset the connection and retry.

Cc: stable@vger.kernel.org
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/nfs4proc.c
include/linux/nfs_xdr.h
include/linux/sunrpc/clnt.h