[GIT PULL] Please pull NFS client updates for Linux 5.6

From: Anna Schumaker
Date: Thu Feb 06 2020 - 17:32:12 EST


Hi Linus,

The following changes since commit 95e20af9fb9ce572129b930967dcb762a318c588:

Merge tag 'nfs-for-5.5-2' of git://git.linux-nfs.org/projects/anna/linux-nfs
(2020-01-14 13:33:14 -0800)

are available in the Git repository at:

git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-5.6-1

for you to fetch changes up to 7dc2993a9e51dd2eee955944efec65bef90265b7:

NFSv4.0: nfs4_do_fsinfo() should not do implicit lease renewals (2020-02-04
12:27:55 -0500)

----------------------------------------------------------------
Stable bugfixes:
- Fix memory leaks and corruption in readdir # v2.6.37+
- Directory page cache needs to be locked when read # v2.6.37+

New features:
- Convert NFS to use the new mount API
- Add "softreval" mount option to let clients use cache if server goes down
- Add a config option to compile without UDP support
- Limit the number of inactive delegations the client can cache at once
- Improved readdir concurrency using iterate_shared()

Other bugfixes and cleanups:
- More 64-bit time conversions
- Add additional diagnostic tracepoints
- Check for holes in swapfiles, and add dependency on CONFIG_SWAP
- Various xprtrdma cleanups to prepare for 5.7's changes
- Several fixes for NFS writeback and commit handling
- Fix acls over krb5i/krb5p mounts
- Recover from premature loss of openstateids
- Fix NFS v3 chacl and chmod bug
- Compare creds using cred_fscmp()
- Use kmemdup_nul() in more places
- Optimize readdir cache page invalidation
- Lease renewal and recovery fixes

Thanks,
Anna

----------------------------------------------------------------
Al Viro (15):
saner calling conventions for nfs_fs_mount_common()
nfs: stash server into struct nfs_mount_info
nfs: lift setting mount_info from nfs4_remote{,_referral}_mount
nfs: fold nfs4_remote_fs_type and nfs4_remote_referral_fs_type
nfs: don't bother setting/restoring export_path around do_nfs_root_mount()
nfs4: fold nfs_do_root_mount/nfs_follow_remote_path
nfs: lift setting mount_info from nfs_xdev_mount()
nfs: stash nfs_subversion reference into nfs_mount_info
nfs: don't bother passing nfs_subversion to ->try_mount() and
nfs_fs_mount_common()
nfs: merge xdev and remote file_system_type
nfs: unexport nfs_fs_mount_common()
nfs: don't pass nfs_subversion to ->create_server()
nfs: get rid of mount_info ->fill_super()
nfs_clone_sb_security(): simplify the check for server bogosity
nfs: get rid of ->set_security()

Alex Shi (1):
NFS: remove unused macros

Arnd Bergmann (5):
sunrpc: convert to time64_t for expiry
nfs: use timespec64 in nfs_fattr
nfs: fscache: use timespec64 in inode auxdata
nfs: remove timespec from xdr_encode_nfstime
nfs: encode nfsv4 timestamps as 64-bit

Chuck Lever (13):
SUNRPC: Capture signalled RPC tasks
NFS: Introduce trace events triggered by page writeback errors
NFS4: Report callback authentication errors
SUNRPC: call_connect_status should handle -EPROTO
xprtrdma: Eliminate ri_max_send_sges
xprtrdma: Make sendctx queue lifetime the same as connection lifetime
xprtrdma: Refactor initialization of ep->rep_max_requests
xprtrdma: Eliminate per-transport "max pages"
xprtrdma: Refactor frwr_is_supported
xprtrdma: Allocate and map transport header buffers at connect time
xprtrdma: Destroy rpcrdma_rep when Receive is flushed
xprtrdma: Destroy reps from previous connection instance
xprtrdma: DMA map rr_rdma_buf as each rpcrdma_rep is created

Colin Ian King (1):
NFS: Add missing null check for failed allocation

Dai Ngo (1):
nfs: optimise readdir cache page invalidation

David Howells (9):
NFS: Move mount parameterisation bits into their own file
NFS: Constify mount argument match tables
NFS: Rename struct nfs_parsed_mount_data to struct nfs_fs_context
NFS: Split nfs_parse_mount_options()
NFS: Deindent nfs_fs_context_parse_option()
NFS: Add a small buffer in nfs_fs_context to avoid string dup
NFS: Do some tidying of the parsing code
NFS: Add fs_context support.
nfs: Return EINVAL rather than ERANGE for mount parse errors

Geert Uytterhoeven (1):
nfs: NFS_SWAP should depend on SWAP

Julia Lawall (1):
SUNRPC: constify copied structure

Murphy Zhou (1):
fs/nfs, swapon: check holes in swapfile

Olga Kornievskaia (3):
NFSv4 fix acl retrieval over krb5i/krb5p mounts
NFSv4.x recover from pre-mature loss of openstateid
NFS: allow deprecation of NFS UDP protocol

Robert Milkowski (2):
NFSv4: try lease recovery on NFS4ERR_EXPIRED
NFSv4.0: nfs4_do_fsinfo() should not do implicit lease renewals

Scott Mayhew (4):
NFS: rename nfs_fs_context pointer arg in a few functions
NFS: Convert mount option parsing to use functionality from fs_parser.h
NFS: Additional refactoring for fs_context conversion
NFS: Attach supplementary error information to fs_context.

Su Yanjun (1):
NFSv3: FIx bug when using chacl and chmod to change acl

Trond Myklebust (32):
NFS: Revalidate the file size on a fatal write error
NFS: Revalidate the file mapping on all fatal writeback errors
SUNRPC: Remove broken gss_mech_list_pseudoflavors()
NFS: Fix up fsync() when the server rebooted
NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes()
NFSv4: Improve read/write/commit tracing
NFS: Fix fix of show_nfs_errors
pNFS/flexfiles: Record resend attempts on I/O failure
NFS: Clean up generic file read tracepoints
NFS: Clean up generic writeback tracepoints
NFS: Clean up generic file commit tracepoint
pNFS/flexfiles: Add tracing for layout errors
NFS: Improve tracing of permission calls
NFS: When resending after a short write, reset the reply count to zero
NFS: Fix nfs_direct_write_reschedule_io()
NFS: Trust cached access if we've already revalidated the inode once
NFS: Add mount option 'softreval'
NFS: Add softreval behaviour to nfs_lookup_revalidate()
NFSv4: pnfs_roc() must use cred_fscmp() to compare creds
NFS: nfs_access_get_cached_rcu() should use cred_fscmp()
NFS: nfs_find_open_context() should use cred_fscmp()
NFSv4: nfs_inode_evict_delegation() should set NFS_DELEGATION_RETURNING
NFS: Clear NFS_DELEGATION_RETURN_IF_CLOSED when the delegation is returned
NFSv4: Try to return the delegation immediately when marked for return on
close
NFSv4: Add accounting for the number of active delegations held
NFSv4: Limit the total number of cached delegations
NFS: Replace various occurrences of kstrndup() with kmemdup_nul()
SUNRPC: Use kmemdup_nul() in rpc_parse_scope_id()
NFS: Fix memory leaks and corruption in readdir
NFS: Directory page cache pages need to be locked when read
NFS: Use kmemdup_nul() in nfs_readdir_make_qstr()
NFS: Switch readdir to using iterate_shared()

Wenwen Wang (1):
NFS: Fix memory leaks

zhengbin (2):
NFS4: Remove unneeded semicolon
NFS: move dprintk after nfs_alloc_fattr in nfs3_proc_lookup

fs/nfs/Kconfig | 11 +-
fs/nfs/Makefile | 2 +-
fs/nfs/callback_xdr.c | 11 +-
fs/nfs/client.c | 84 ++--
fs/nfs/delegation.c | 80 +++-
fs/nfs/delegation.h | 1 +
fs/nfs/dir.c | 83 ++--
fs/nfs/direct.c | 7 +-
fs/nfs/dns_resolve.c | 2 +-
fs/nfs/file.c | 49 ++-
fs/nfs/flexfilelayout/flexfilelayout.c | 34 +-
fs/nfs/fs_context.c | 1437
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/nfs/fscache-index.c | 6 +-
fs/nfs/fscache.c | 20 +-
fs/nfs/fscache.h | 8 +-
fs/nfs/getroot.c | 73 +--
fs/nfs/inode.c | 10 +-
fs/nfs/internal.h | 143 +++---
fs/nfs/mount_clnt.c | 2 -
fs/nfs/namespace.c | 146 +++---
fs/nfs/nfs2xdr.c | 12 +-
fs/nfs/nfs3_fs.h | 2 +-
fs/nfs/nfs3client.c | 6 +-
fs/nfs/nfs3proc.c | 28 +-
fs/nfs/nfs3xdr.c | 5 +-
fs/nfs/nfs42proc.c | 40 +-
fs/nfs/nfs4_fs.h | 19 +-
fs/nfs/nfs4client.c | 99 ++---
fs/nfs/nfs4file.c | 1 +
fs/nfs/nfs4namespace.c | 298 +++++++------
fs/nfs/nfs4proc.c | 104 +++--
fs/nfs/nfs4renewd.c | 5 +-
fs/nfs/nfs4state.c | 7 +-
fs/nfs/nfs4super.c | 257 ++++-------
fs/nfs/nfs4trace.c | 4 +
fs/nfs/nfs4trace.h | 237 ++++++++--
fs/nfs/nfs4xdr.c | 17 +-
fs/nfs/nfstrace.h | 279 +++++++++---
fs/nfs/pnfs.c | 4 +-
fs/nfs/pnfs.h | 8 +-
fs/nfs/pnfs_nfs.c | 7 +-
fs/nfs/proc.c | 24 +-
fs/nfs/read.c | 7 +-
fs/nfs/super.c | 2218 ++++++++++++---------------------
-----------------------------------------------------------
fs/nfs/write.c | 32 +-
include/linux/nfs_fs.h | 3 +
include/linux/nfs_fs_sb.h | 1 +
include/linux/nfs_xdr.h | 11 +-
include/linux/sunrpc/auth.h | 2 -
include/linux/sunrpc/gss_api.h | 7 +-
include/linux/sunrpc/gss_krb5.h | 2 +-
include/trace/events/rpcrdma.h | 12 +-
include/trace/events/sunrpc.h | 1 +
net/sunrpc/addr.c | 2 +-
net/sunrpc/auth.c | 49 ---
net/sunrpc/auth_gss/auth_gss.c | 1 -
net/sunrpc/auth_gss/gss_krb5_mech.c | 12 +-
net/sunrpc/auth_gss/gss_krb5_seal.c | 8 +-
net/sunrpc/auth_gss/gss_krb5_unseal.c | 6 +-
net/sunrpc/auth_gss/gss_krb5_wrap.c | 16 +-
net/sunrpc/auth_gss/gss_mech_switch.c | 31 +-
net/sunrpc/auth_gss/svcauth_gss.c | 4 +-
net/sunrpc/clnt.c | 1 +
net/sunrpc/sched.c | 4 +-
net/sunrpc/xdr.c | 2 +-
net/sunrpc/xprtrdma/backchannel.c | 4 +
net/sunrpc/xprtrdma/frwr_ops.c | 104 ++---
net/sunrpc/xprtrdma/rpc_rdma.c | 20 +-
net/sunrpc/xprtrdma/transport.c | 17 +-
net/sunrpc/xprtrdma/verbs.c | 213 +++++----
net/sunrpc/xprtrdma/xprt_rdma.h | 14 +-
71 files changed, 3404 insertions(+), 3072 deletions(-)
create mode 100644 fs/nfs/fs_context.c