kernel_samsung_a53x/fs/nfs
Anna Schumaker 51e5124d93 NFS: Fix READ_PLUS when server doesn't support OP_READ_PLUS
commit f06d1b10cb016d5aaecdb1804fefca025387bd10 upstream.

Olga showed me a case where the client was sending multiple READ_PLUS
calls to the server in parallel, and the server replied
NFS4ERR_OPNOTSUPP to each. The client would fall back to READ for the
first reply, but fail to retry the other calls.

I fix this by removing the test for NFS_CAP_READ_PLUS in
nfs4_read_plus_not_supported(). This allows us to reschedule any
READ_PLUS call that has a NFS4ERR_OPNOTSUPP return value, even after the
capability has been cleared.

Reported-by: Olga Kornievskaia <kolga@netapp.com>
Fixes: c567552612ec ("NFS: Add READ_PLUS data segment support")
Cc: stable@vger.kernel.org # v5.10+
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-19 12:27:19 +01:00
..
blocklayout blocklayoutdriver: Fix reference leak of pnfs_device_node 2024-11-18 12:12:27 +01:00
filelayout Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flexfilelayout Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cache_lib.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cache_lib.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
callback.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
callback.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
callback_proc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
callback_xdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
client.c nfs: make the rpc_stat per net namespace 2024-11-19 11:32:41 +01:00
delegation.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
delegation.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dir.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
direct.c nfs: fix UAF in direct writes 2024-11-19 09:22:34 +01:00
dns_resolve.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dns_resolve.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
export.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
file.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fs_context.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fscache-index.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fscache.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fscache.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
getroot.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inode.c nfs: Handle error of rpc_proc_register() in nfs_net_init(). 2024-11-19 11:32:41 +01:00
internal.h nfs: fix undefined behavior in nfs_block_bits() 2024-11-19 12:27:19 +01:00
io.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
iostat.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mount_clnt.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
namespace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netns.h nfs: make the rpc_stat per net namespace 2024-11-19 11:32:41 +01:00
nfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs2super.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs2xdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs3_fs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs3acl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs3client.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs3proc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs3super.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs3xdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4_fs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4client.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4file.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4getroot.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4idmap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4idmap.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4namespace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4proc.c NFS: Fix READ_PLUS when server doesn't support OP_READ_PLUS 2024-11-19 12:27:19 +01:00
nfs4renewd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4session.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4session.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4state.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4super.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4sysctl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4trace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4trace.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs4xdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs42.h NFSv4.2: fix listxattr maximum XDR buffer size 2024-11-19 08:44:57 +01:00
nfs42proc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs42xattr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfs42xdr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfsroot.c NFS: Fix an off by one in root_nfs_cat() 2024-11-19 08:44:57 +01:00
nfstrace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nfstrace.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pagelist.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pnfs.c pNFS: Fix a hang in nfs4_evict_inode() 2024-11-08 11:26:19 +01:00
pnfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pnfs_dev.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pnfs_nfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
proc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
read.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
super.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
symlink.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysctl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
unlink.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
write.c nfs: fix UAF in direct writes 2024-11-19 09:22:34 +01:00