[GIT PULL] 2nd set of nfsd changes for 5.17-rc

From: Chuck Lever III
Date: Wed Feb 09 2022 - 09:44:32 EST


Hi Linus-

This pull request contains fixes for a bug report that came in
at the end of the 5.16-rc period. It took some time to develop
and review the fixes. Regression tests were added or updated as
a result of this issue.

There is a crash fix and a fix for an unterminating loop between
a client and server in this set, so I'm sending these now rather
than waiting for 5.18.

These have been in linux-next for several days, but the commit
dates were updated this morning because I forgot to add Cc:
stable the first time.

--- PR follows ---

The following changes since commit ab451ea952fe9d7afefae55ddb28943a148247fe:

nfsd: nfsd4_setclientid_confirm mistakenly expires confirmed client. (2022-01-28 09:04:00 -0500)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-5.17-2

for you to fetch changes up to c306d737691ef84305d4ed0d302c63db2932f0bb:

NFSD: Deprecate NFS_OFFSET_MAX (2022-02-09 09:24:40 -0500)

----------------------------------------------------------------
Notable bug fixes:

Ensure that NFS clients cannot send file size or offset values that
can cause the NFS server to crash or to return incorrect or
surprising results. In particular, fix how the NFS server handles
values larger than OFFSET_MAX.

----------------------------------------------------------------
Chuck Lever (7):
NFSD: Fix the behavior of READ near OFFSET_MAX
NFSD: Fix ia_size underflow
NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes
NFSD: Clamp WRITE offsets
NFSD: COMMIT operations must not return NFS?ERR_INVAL
NFSD: Fix offset type in I/O trace points
NFSD: Deprecate NFS_OFFSET_MAX

fs/nfsd/nfs3proc.c | 19 +++++++++++--------
fs/nfsd/nfs3xdr.c | 4 ++--
fs/nfsd/nfs4proc.c | 13 +++++++++----
fs/nfsd/nfs4xdr.c | 10 +++-------
fs/nfsd/trace.h | 14 +++++++-------
fs/nfsd/vfs.c | 57 ++++++++++++++++++++++++++++++++++++++++-----------------
fs/nfsd/vfs.h | 4 ++--
include/linux/nfs.h | 8 --------
8 files changed, 74 insertions(+), 55 deletions(-)

--
Chuck Lever