mbox series

[GIT,PULL,5.10.y] NFSD filecache fixes

Message ID ZnCO88W37FXg5CV6@tissot.1015granger.net (mailing list archive)
State New
Headers show
Series [GIT,PULL,5.10.y] NFSD filecache fixes | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git nfsd-5.10.y

Message

Chuck Lever III June 17, 2024, 7:30 p.m. UTC
Hi Greg, Sasha-

Here is a backport of nearly every NFSD patch from v5.11 until
v6.3, plus subsequent fixes, onto LTS v5.10.219. This addresses
the many NFSD filecache-related scalability problems in v5.10's
NFSD. This also contains fixes for issues found in the v5.15
NFSD backport over the past several months.

I've run this kernel through the usual upstream CI testing for
NFSD, and it seems solid.

In lieu of sending an mbox containing all of these patches, here's
a pull request that gives you the co-ordinates for the full series
enabling you to handle the merge however you prefer.


--- cut here ---

The following changes since commit a2ed1606213906ac22fd66bebb34b88f8e24224b:

  Linux 5.10.219 (2024-06-16 13:32:37 +0200)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git nfsd-5.10.y

for you to fetch changes up to 297ad218672e7f8d6e1f6af048c42a42760f56b1:

  nfsd: Fix a regression in nfsd_setattr() (2024-06-17 09:49:21 -0400)

----------------------------------------------------------------
Al Viro (2):
      nfsd_splice_actor(): handle compound pages
      fs/notify: constify path

Alex Shi (1):
      nfsd/nfs3: remove unused macro nfsd3_fhandleres

Amir Goldstein (52):
      nfsd: remove unused stats counters
      nfsd: protect concurrent access to nfsd stats counters
      nfsd: report per-export stats
      fsnotify: allow fsnotify_{peek,remove}_first_event with empty queue
      fanotify: reduce event objectid to 29-bit hash
      fanotify: mix event info and pid into merge key hash
      fsnotify: use hash table for faster events merge
      fanotify: limit number of event merge attempts
      fanotify: configurable limits via sysfs
      fanotify: support limited functionality for unprivileged users
      fanotify: fix permission model of unprivileged group
      fsnotify: replace igrab() with ihold() on attach connector
      fsnotify: count s_fsnotify_inode_refs for attached connectors
      fsnotify: count all objects with attached connectors
      fsnotify: optimize the case of no marks of any type
      fsnotify: fix sb_connectors leak
      fsnotify: pass data_type to fsnotify_name()
      fsnotify: pass dentry instead of inode data
      fsnotify: clarify contract for create event hooks
      fsnotify: clarify object type argument
      fsnotify: separate mark iterator type from object type enum
      fanotify: introduce group flag FAN_REPORT_TARGET_FID
      fsnotify: generate FS_RENAME event with rich information
      fanotify: use macros to get the offset to fanotify_info buffer
      fanotify: use helpers to parcel fanotify_info buffer
      fanotify: support secondary dir fh and name in fanotify_info
      fanotify: record old and new parent and name in FAN_RENAME event
      fanotify: record either old name new name or both for FAN_RENAME
      fanotify: report old and/or new parent+name in FAN_RENAME event
      fanotify: wire up FAN_RENAME event
      fsnotify: fix merge with parent's ignored mask
      fsnotify: optimize FS_MODIFY events with no ignored masks
      fanotify: do not allow setting dirent events in mask of non-dir
      inotify: move control flags from mask to mark flags
      fsnotify: pass flags argument to fsnotify_alloc_group()
      fsnotify: make allow_dups a property of the group
      fsnotify: create helpers for group mark_mutex lock
      inotify: use fsnotify group lock helpers
      nfsd: use fsnotify group lock helpers
      dnotify: use fsnotify group lock helpers
      fsnotify: allow adding an inode mark without pinning inode
      fanotify: create helper fanotify_mark_user_flags()
      fanotify: factor out helper fanotify_mark_update_flags()
      fanotify: implement "evictable" inode marks
      fanotify: use fsnotify group lock helpers
      fanotify: enable "evictable" inode marks
      fsnotify: introduce mark type iterator
      fsnotify: consistent behavior for parent not watching children
      fanotify: refine the validation checks on non-dir inode mask
      fanotify: prepare for setting event flags in ignore mask
      fanotify: cleanups for fanotify_mark() input validations
      fanotify: introduce FAN_MARK_IGNORE

Anna Schumaker (1):
      NFSD: Simplify READ_PLUS

Bang Li (1):
      fsnotify: remove redundant parameter judgment

Benjamin Coddington (1):
      NLM: Defend against file_lock changes after vfs_test_lock()

Brian Foster (1):
      NFSD: pass range end to vfs_fsync_range() instead of count

Changcheng Deng (1):
      NFSD:fix boolreturn.cocci warning

ChenXiaoSong (5):
      nfsd: use DEFINE_PROC_SHOW_ATTRIBUTE to define nfsd_proc_ops
      nfsd: use DEFINE_SHOW_ATTRIBUTE to define export_features_fops and supported_enctypes_fops
      nfsd: use DEFINE_SHOW_ATTRIBUTE to define client_info_fops
      nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops
      nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops

Christian Brauner (3):
      fs: add file and path permissions helpers
      namei: introduce struct renamedata
      fanotify_user: use upper_32_bits() to verify mask

Christoph Hellwig (4):
      module: unexport find_module and module_mutex
      module: use RCU to synchronize find_module
      kallsyms: refactor {,module_}kallsyms_on_each_symbol
      kallsyms: only build {,module_}kallsyms_on_each_symbol when required

Christophe JAILLET (2):
      nfsd: Avoid some useless tests
      nfsd: Propagate some error code returned by memdup_user()

Chuck Lever (409):
      SUNRPC: Rename svc_encode_read_payload()
      NFSD: Invoke svc_encode_result_payload() in "read" NFSD encoders
      NFSD: Clean up the show_nf_may macro
      NFSD: Remove extra "0x" in tracepoint format specifier
      NFSD: Add SPDX header for fs/nfsd/trace.c
      SUNRPC: Add xdr_set_scratch_page() and xdr_reset_scratch_buffer()
      SUNRPC: Prepare for xdr_stream-style decoding on the server-side
      NFSD: Add common helpers to decode void args and encode void results
      NFSD: Add tracepoints in nfsd_dispatch()
      NFSD: Add tracepoints in nfsd4_decode/encode_compound()
      NFSD: Replace the internals of the READ_BUF() macro
      NFSD: Replace READ* macros in nfsd4_decode_access()
      NFSD: Replace READ* macros in nfsd4_decode_close()
      NFSD: Replace READ* macros in nfsd4_decode_commit()
      NFSD: Change the way the expected length of a fattr4 is checked
      NFSD: Replace READ* macros that decode the fattr4 size attribute
      NFSD: Replace READ* macros that decode the fattr4 acl attribute
      NFSD: Replace READ* macros that decode the fattr4 mode attribute
      NFSD: Replace READ* macros that decode the fattr4 owner attribute
      NFSD: Replace READ* macros that decode the fattr4 owner_group attribute
      NFSD: Replace READ* macros that decode the fattr4 time_set attributes
      NFSD: Replace READ* macros that decode the fattr4 security label attribute
      NFSD: Replace READ* macros that decode the fattr4 umask attribute
      NFSD: Replace READ* macros in nfsd4_decode_fattr()
      NFSD: Replace READ* macros in nfsd4_decode_create()
      NFSD: Replace READ* macros in nfsd4_decode_delegreturn()
      NFSD: Replace READ* macros in nfsd4_decode_getattr()
      NFSD: Replace READ* macros in nfsd4_decode_link()
      NFSD: Relocate nfsd4_decode_opaque()
      NFSD: Add helpers to decode a clientid4 and an NFSv4 state owner
      NFSD: Add helper for decoding locker4
      NFSD: Replace READ* macros in nfsd4_decode_lock()
      NFSD: Replace READ* macros in nfsd4_decode_lockt()
      NFSD: Replace READ* macros in nfsd4_decode_locku()
      NFSD: Replace READ* macros in nfsd4_decode_lookup()
      NFSD: Add helper to decode NFSv4 verifiers
      NFSD: Add helper to decode OPEN's createhow4 argument
      NFSD: Add helper to decode OPEN's openflag4 argument
      NFSD: Replace READ* macros in nfsd4_decode_share_access()
      NFSD: Replace READ* macros in nfsd4_decode_share_deny()
      NFSD: Add helper to decode OPEN's open_claim4 argument
      NFSD: Replace READ* macros in nfsd4_decode_open()
      NFSD: Replace READ* macros in nfsd4_decode_open_confirm()
      NFSD: Replace READ* macros in nfsd4_decode_open_downgrade()
      NFSD: Replace READ* macros in nfsd4_decode_putfh()
      NFSD: Replace READ* macros in nfsd4_decode_read()
      NFSD: Replace READ* macros in nfsd4_decode_readdir()
      NFSD: Replace READ* macros in nfsd4_decode_remove()
      NFSD: Replace READ* macros in nfsd4_decode_rename()
      NFSD: Replace READ* macros in nfsd4_decode_renew()
      NFSD: Replace READ* macros in nfsd4_decode_secinfo()
      NFSD: Replace READ* macros in nfsd4_decode_setattr()
      NFSD: Replace READ* macros in nfsd4_decode_setclientid()
      NFSD: Replace READ* macros in nfsd4_decode_setclientid_confirm()
      NFSD: Replace READ* macros in nfsd4_decode_verify()
      NFSD: Replace READ* macros in nfsd4_decode_write()
      NFSD: Replace READ* macros in nfsd4_decode_release_lockowner()
      NFSD: Replace READ* macros in nfsd4_decode_cb_sec()
      NFSD: Replace READ* macros in nfsd4_decode_backchannel_ctl()
      NFSD: Replace READ* macros in nfsd4_decode_bind_conn_to_session()
      NFSD: Add a separate decoder to handle state_protect_ops
      NFSD: Add a separate decoder for ssv_sp_parms
      NFSD: Add a helper to decode state_protect4_a
      NFSD: Add a helper to decode nfs_impl_id4
      NFSD: Add a helper to decode channel_attrs4
      NFSD: Replace READ* macros in nfsd4_decode_create_session()
      NFSD: Replace READ* macros in nfsd4_decode_destroy_session()
      NFSD: Replace READ* macros in nfsd4_decode_free_stateid()
      NFSD: Replace READ* macros in nfsd4_decode_getdeviceinfo()
      NFSD: Replace READ* macros in nfsd4_decode_layoutcommit()
      NFSD: Replace READ* macros in nfsd4_decode_layoutget()
      NFSD: Replace READ* macros in nfsd4_decode_layoutreturn()
      NFSD: Replace READ* macros in nfsd4_decode_secinfo_no_name()
      NFSD: Replace READ* macros in nfsd4_decode_sequence()
      NFSD: Replace READ* macros in nfsd4_decode_test_stateid()
      NFSD: Replace READ* macros in nfsd4_decode_destroy_clientid()
      NFSD: Replace READ* macros in nfsd4_decode_reclaim_complete()
      NFSD: Replace READ* macros in nfsd4_decode_fallocate()
      NFSD: Replace READ* macros in nfsd4_decode_nl4_server()
      NFSD: Replace READ* macros in nfsd4_decode_copy()
      NFSD: Replace READ* macros in nfsd4_decode_copy_notify()
      NFSD: Replace READ* macros in nfsd4_decode_offload_status()
      NFSD: Replace READ* macros in nfsd4_decode_seek()
      NFSD: Replace READ* macros in nfsd4_decode_clone()
      NFSD: Replace READ* macros in nfsd4_decode_xattr_name()
      NFSD: Replace READ* macros in nfsd4_decode_setxattr()
      NFSD: Replace READ* macros in nfsd4_decode_listxattrs()
      NFSD: Make nfsd4_ops::opnum a u32
      NFSD: Replace READ* macros in nfsd4_decode_compound()
      NFSD: Remove macros that are no longer used
      Revert "fget: clarify and improve __fget_files() implementation"
      NFSD: Fix sparse warning in nfssvc.c
      NFSD: Restore NFSv4 decoding's SAVEMEM functionality
      SUNRPC: Make trace_svc_process() display the RPC procedure symbolically
      SUNRPC: Display RPC procedure names instead of proc numbers
      SUNRPC: Move definition of XDR_UNIT
      NFSD: Update GETATTR3args decoder to use struct xdr_stream
      NFSD: Update ACCESS3arg decoder to use struct xdr_stream
      NFSD: Update READ3arg decoder to use struct xdr_stream
      NFSD: Update WRITE3arg decoder to use struct xdr_stream
      NFSD: Update READLINK3arg decoder to use struct xdr_stream
      NFSD: Fix returned READDIR offset cookie
      NFSD: Add helper to set up the pages where the dirlist is encoded
      NFSD: Update READDIR3args decoders to use struct xdr_stream
      NFSD: Update COMMIT3arg decoder to use struct xdr_stream
      NFSD: Update the NFSv3 DIROPargs decoder to use struct xdr_stream
      NFSD: Update the RENAME3args decoder to use struct xdr_stream
      NFSD: Update the LINK3args decoder to use struct xdr_stream
      NFSD: Update the SETATTR3args decoder to use struct xdr_stream
      NFSD: Update the CREATE3args decoder to use struct xdr_stream
      NFSD: Update the MKDIR3args decoder to use struct xdr_stream
      NFSD: Update the SYMLINK3args decoder to use struct xdr_stream
      NFSD: Update the MKNOD3args decoder to use struct xdr_stream
      NFSD: Update the NFSv2 GETATTR argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 READ argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 WRITE argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 READLINK argument decoder to use struct xdr_stream
      NFSD: Add helper to set up the pages where the dirlist is encoded
      NFSD: Update the NFSv2 READDIR argument decoder to use struct xdr_stream
      NFSD: Update NFSv2 diropargs decoding to use struct xdr_stream
      NFSD: Update the NFSv2 RENAME argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 LINK argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 SETATTR argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 CREATE argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 SYMLINK argument decoder to use struct xdr_stream
      NFSD: Remove argument length checking in nfsd_dispatch()
      NFSD: Update the NFSv2 GETACL argument decoder to use struct xdr_stream
      NFSD: Add an xdr_stream-based decoder for NFSv2/3 ACLs
      NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 ACL GETATTR argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 ACL ACCESS argument decoder to use struct xdr_stream
      NFSD: Clean up after updating NFSv2 ACL decoders
      NFSD: Update the NFSv3 GETACL argument decoder to use struct xdr_stream
      NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream
      NFSD: Clean up after updating NFSv3 ACL decoders
      NFSD: Extract the svcxdr_init_encode() helper
      NFSD: Update the GETATTR3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 ACCESS3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 LOOKUP3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 wccstat result encoder to use struct xdr_stream
      NFSD: Update the NFSv3 READLINK3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 READ3res encode to use struct xdr_stream
      NFSD: Update the NFSv3 WRITE3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 CREATE family of encoders to use struct xdr_stream
      NFSD: Update the NFSv3 RENAMEv3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 LINK3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 FSSTAT3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 FSINFO3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 PATHCONF3res encoder to use struct xdr_stream
      NFSD: Update the NFSv3 COMMIT3res encoder to use struct xdr_stream
      NFSD: Add a helper that encodes NFSv3 directory offset cookies
      NFSD: Count bytes instead of pages in the NFSv3 READDIR encoder
      NFSD: Update the NFSv3 READDIR3res encoder to use struct xdr_stream
      NFSD: Update NFSv3 READDIR entry encoders to use struct xdr_stream
      NFSD: Remove unused NFSv3 directory entry encoders
      NFSD: Reduce svc_rqst::rq_pages churn during READDIR operations
      NFSD: Update the NFSv2 stat encoder to use struct xdr_stream
      NFSD: Update the NFSv2 attrstat encoder to use struct xdr_stream
      NFSD: Update the NFSv2 diropres encoder to use struct xdr_stream
      NFSD: Update the NFSv2 READLINK result encoder to use struct xdr_stream
      NFSD: Update the NFSv2 READ result encoder to use struct xdr_stream
      NFSD: Update the NFSv2 STATFS result encoder to use struct xdr_stream
      NFSD: Add a helper that encodes NFSv3 directory offset cookies
      NFSD: Count bytes instead of pages in the NFSv2 READDIR encoder
      NFSD: Update the NFSv2 READDIR result encoder to use struct xdr_stream
      NFSD: Update the NFSv2 READDIR entry encoder to use struct xdr_stream
      NFSD: Remove unused NFSv2 directory entry encoders
      NFSD: Add an xdr_stream-based encoder for NFSv2/3 ACLs
      NFSD: Update the NFSv2 GETACL result encoder to use struct xdr_stream
      NFSD: Update the NFSv2 SETACL result encoder to use struct xdr_stream
      NFSD: Update the NFSv2 ACL GETATTR result encoder to use struct xdr_stream
      NFSD: Update the NFSv2 ACL ACCESS result encoder to use struct xdr_stream
      NFSD: Clean up after updating NFSv2 ACL encoders
      NFSD: Update the NFSv3 GETACL result encoder to use struct xdr_stream
      NFSD: Update the NFSv3 SETACL result encoder to use struct xdr_stream
      NFSD: Clean up after updating NFSv3 ACL encoders
      NFSD: Add a tracepoint to record directory entry encoding
      NFSD: Clean up NFSDDBG_FACILITY macro
      SUNRPC: Export svc_xprt_received()
      Revert "fanotify: limit number of event merge attempts"
      NFSD: Add an RPC authflavor tracepoint display helper
      NFSD: Add nfsd_clid_cred_mismatch tracepoint
      NFSD: Add nfsd_clid_verf_mismatch tracepoint
      NFSD: Remove trace_nfsd_clid_inuse_err
      NFSD: Add nfsd_clid_confirmed tracepoint
      NFSD: Add nfsd_clid_reclaim_complete tracepoint
      NFSD: Add nfsd_clid_destroyed tracepoint
      NFSD: Add a couple more nfsd_clid_expired call sites
      NFSD: Add tracepoints for SETCLIENTID edge cases
      NFSD: Add tracepoints for EXCHANGEID edge cases
      NFSD: Constify @fh argument of knfsd_fh_hash()
      NFSD: Capture every CB state transition
      NFSD: Drop TRACE_DEFINE_ENUM for NFSD4_CB_<state> macros
      NFSD: Add cb_lost tracepoint
      NFSD: Adjust cb_shutdown tracepoint
      NFSD: Enhance the nfsd_cb_setup tracepoint
      NFSD: Add an nfsd_cb_lm_notify tracepoint
      NFSD: Add an nfsd_cb_offload tracepoint
      NFSD: Replace the nfsd_deleg_break tracepoint
      NFSD: Add an nfsd_cb_probe tracepoint
      NFSD: Remove the nfsd_cb_work and nfsd_cb_done tracepoints
      NFSD: Update nfsd_cb_args tracepoint
      lockd: Remove stale comments
      lockd: Create a simplified .vs_dispatch method for NLM requests
      lockd: Common NLM XDR helpers
      lockd: Update the NLMv1 void argument decoder to use struct xdr_stream
      lockd: Update the NLMv1 TEST arguments decoder to use struct xdr_stream
      lockd: Update the NLMv1 LOCK arguments decoder to use struct xdr_stream
      lockd: Update the NLMv1 CANCEL arguments decoder to use struct xdr_stream
      lockd: Update the NLMv1 UNLOCK arguments decoder to use struct xdr_stream
      lockd: Update the NLMv1 nlm_res arguments decoder to use struct xdr_stream
      lockd: Update the NLMv1 SM_NOTIFY arguments decoder to use struct xdr_stream
      lockd: Update the NLMv1 SHARE arguments decoder to use struct xdr_stream
      lockd: Update the NLMv1 FREE_ALL arguments decoder to use struct xdr_stream
      lockd: Update the NLMv1 void results encoder to use struct xdr_stream
      lockd: Update the NLMv1 TEST results encoder to use struct xdr_stream
      lockd: Update the NLMv1 nlm_res results encoder to use struct xdr_stream
      lockd: Update the NLMv1 SHARE results encoder to use struct xdr_stream
      lockd: Update the NLMv4 void arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 TEST arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 LOCK arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 CANCEL arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 UNLOCK arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 nlm_res arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 SM_NOTIFY arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 SHARE arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 FREE_ALL arguments decoder to use struct xdr_stream
      lockd: Update the NLMv4 void results encoder to use struct xdr_stream
      lockd: Update the NLMv4 TEST results encoder to use struct xdr_stream
      lockd: Update the NLMv4 nlm_res results encoder to use struct xdr_stream
      [ Upstream commit 0ff5b50ab1f7f39862d0cdf6803978d31b27f25e ]
      NFSD: Prevent a possible oops in the nfs_dirent() tracepoint
      NFSD: Clean up splice actor
      SUNRPC: Add svc_rqst_replace_page() API
      NFSD: Batch release pages during splice read
      SUNRPC: Add svc_rqst::rq_auth_stat
      SUNRPC: Set rq_auth_stat in the pg_authenticate() callout
      SUNRPC: Eliminate the RQ_AUTHERR flag
      NFS: Add a private local dispatcher for NFSv4 callback operations
      NFS: Remove unused callback void decoder
      NLM: Fix svcxdr_encode_owner()
      SUNRPC: Trace calls to .rpc_call_done
      NFSD: Optimize DRC bucket pruning
      NFSD: Have legacy NFSD WRITE decoders use xdr_stream_subsegment()
      SUNRPC: Replace the "__be32 *p" parameter to .pc_decode
      SUNRPC: Change return value type of .pc_decode
      NFSD: Save location of NFSv4 COMPOUND status
      SUNRPC: Replace the "__be32 *p" parameter to .pc_encode
      SUNRPC: Change return value type of .pc_encode
      NFSD: Fix exposure in nfsd4_decode_bitmap()
      NFSD: Fix READDIR buffer overflow
      NFSD: Fix sparse warning
      NFSD: Remove be32_to_cpu() from DRC hash function
      NFSD: Combine XDR error tracepoints
      NFSD: De-duplicate nfsd4_decode_bitmap4()
      NFSD: Fix zero-length NFSv3 WRITEs
      NFSD: Clean up nfsd_vfs_write()
      NFSD: De-duplicate net_generic(SVC_NET(rqstp), nfsd_net_id)
      NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id)
      NFSD: Write verifier might go backwards
      NFSD: Clean up the nfsd_net::nfssvc_boot field
      NFSD: Rename boot verifier functions
      NFSD: Trace boot verifier resets
      Revert "nfsd: skip some unnecessary stats in the v4 case"
      NFSD: Move fill_pre_wcc() and fill_post_wcc()
      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: COMMIT operations must not return NFS?ERR_INVAL
      NFSD: Deprecate NFS_OFFSET_MAX
      NFSD: De-duplicate hash bucket indexing
      NFSD: Skip extra computation for RC_NOCACHE case
      NFSD: Streamline the rare "found" case
      SUNRPC: Remove the .svo_enqueue_xprt method
      SUNRPC: Merge svc_do_enqueue_xprt() into svc_enqueue_xprt()
      SUNRPC: Remove svo_shutdown method
      SUNRPC: Rename svc_create_xprt()
      SUNRPC: Rename svc_close_xprt()
      SUNRPC: Remove svc_shutdown_net()
      NFSD: Remove svc_serv_ops::svo_module
      NFSD: Move svc_serv_ops::svo_function into struct svc_serv
      NFSD: Remove CONFIG_NFSD_V3
      NFSD: Clean up _lm_ operation names
      NFSD: Clean up nfsd_splice_actor()
      NFSD: Clean up nfsd3_proc_create()
      NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create()
      NFSD: Refactor nfsd_create_setattr()
      NFSD: Refactor NFSv3 CREATE
      NFSD: Refactor NFSv4 OPEN(CREATE)
      NFSD: Remove do_nfsd_create()
      NFSD: Clean up nfsd_open_verified()
      NFSD: Instantiate a struct file when creating a regular NFSv4 file
      NFSD: Remove dprintk call sites from tail of nfsd4_open()
      NFSD: Fix whitespace
      NFSD: Move documenting comment for nfsd4_process_open2()
      NFSD: Trace filecache opens
      NFSD: Clean up the show_nf_flags() macro
      SUNRPC: Use RMW bitops in single-threaded hot paths
      NFSD: Modernize nfsd4_release_lockowner()
      NFSD: Add documenting comment for nfsd4_release_lockowner()
      NFSD: nfsd_file_put() can sleep
      NFSD: Fix potential use-after-free in nfsd_file_put()
      SUNRPC: Optimize xdr_reserve_space()
      NFSD: Decode NFSv4 birth time attribute
      SUNRPC: Fix xdr_encode_bool()
      NFSD: Demote a WARN to a pr_warn()
      NFSD: Report filecache LRU size
      NFSD: Report count of calls to nfsd_file_acquire()
      NFSD: Report count of freed filecache items
      NFSD: Report average age of filecache items
      NFSD: Add nfsd_file_lru_dispose_list() helper
      NFSD: Refactor nfsd_file_gc()
      NFSD: Refactor nfsd_file_lru_scan()
      NFSD: Report the number of items evicted by the LRU walk
      NFSD: Record number of flush calls
      NFSD: Zero counters when the filecache is re-initialized
      NFSD: Hook up the filecache stat file
      NFSD: WARN when freeing an item still linked via nf_lru
      NFSD: Trace filecache LRU activity
      NFSD: Leave open files out of the filecache LRU
      NFSD: Fix the filecache LRU shrinker
      NFSD: Never call nfsd_file_gc() in foreground paths
      NFSD: No longer record nf_hashval in the trace log
      NFSD: Remove lockdep assertion from unhash_and_release_locked()
      NFSD: nfsd_file_unhash can compute hashval from nf->nf_inode
      NFSD: Refactor __nfsd_file_close_inode()
      NFSD: nfsd_file_hash_remove can compute hashval
      NFSD: Remove nfsd_file::nf_hashval
      NFSD: Replace the "init once" mechanism
      NFSD: Set up an rhashtable for the filecache
      NFSD: Convert the filecache to use rhashtable
      NFSD: Clean up unused code after rhashtable conversion
      NFSD: Separate tracepoints for acquire and create
      NFSD: Move nfsd_file_trace_alloc() tracepoint
      NFSD: NFSv4 CLOSE should release an nfsd_file immediately
      NFSD: Ensure nf_inode is never dereferenced
      NFSD: Optimize nfsd4_encode_operation()
      NFSD: Optimize nfsd4_encode_fattr()
      NFSD: Clean up SPLICE_OK in nfsd4_encode_read()
      NFSD: Add an nfsd4_read::rd_eof field
      NFSD: Optimize nfsd4_encode_readv()
      NFSD: Simplify starting_len
      NFSD: Use xdr_pad_size()
      NFSD: Clean up nfsd4_encode_readlink()
      NFSD: Fix strncpy() fortify warning
      NFSD: nfserrno(-ENOMEM) is nfserr_jukebox
      NFSD: Shrink size of struct nfsd4_copy_notify
      NFSD: Shrink size of struct nfsd4_copy
      NFSD: Reorder the fields in struct nfsd4_op
      NFSD: Make nfs4_put_copy() static
      NFSD: Replace boolean fields in struct nfsd4_copy
      NFSD: Refactor nfsd4_cleanup_inter_ssc() (1/2)
      NFSD: Refactor nfsd4_cleanup_inter_ssc() (2/2)
      NFSD: Refactor nfsd4_do_copy()
      NFSD: Remove kmalloc from nfsd4_do_async_copy()
      NFSD: Add nfsd4_send_cb_offload()
      NFSD: Move copy offload callback arguments into a separate structure
      NFSD: Increase NFSD_MAX_OPS_PER_COMPOUND
      NFSD: Protect against send buffer overflow in NFSv2 READDIR
      NFSD: Protect against send buffer overflow in NFSv3 READDIR
      NFSD: Protect against send buffer overflow in NFSv2 READ
      NFSD: Protect against send buffer overflow in NFSv3 READ
      NFSD: Fix handling of oversized NFSv4 COMPOUND requests
      NFSD: Add tracepoints to report NFSv4 callback completions
      NFSD: Add a mechanism to wait for a DELEGRETURN
      NFSD: Refactor nfsd_setattr()
      NFSD: Make nfsd4_setattr() wait before returning NFS4ERR_DELAY
      NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY
      NFSD: Make nfsd4_remove() wait before returning NFS4ERR_DELAY
      SUNRPC: Parametrize how much of argsize should be zeroed
      NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing
      NFSD: Refactor common code out of dirlist helpers
      NFSD: Use xdr_inline_decode() to decode NFSv3 symlinks
      NFSD: Clean up WRITE arg decoders
      NFSD: Clean up nfs4svc_encode_compoundres()
      NFSD: Remove "inline" directives on op_rsize_bop helpers
      NFSD: Remove unused nfsd4_compoundargs::cachetype field
      NFSD: Pack struct nfsd4_compoundres
      NFSD: Rename the fields in copy_stateid_t
      NFSD: Cap rsize_bop result based on send buffer size
      NFSD: Fix reads with a non-zero offset that don't end on a page boundary
      NFSD: Finish converting the NFSv2 GETACL result encoder
      NFSD: Finish converting the NFSv3 GETACL result encoder
      NFSD: Pass the target nfsd_file to nfsd_commit()
      NFSD: Revert "NFSD: NFSv4 CLOSE should release an nfsd_file immediately"
      NFSD: Add an NFSD_FILE_GC flag to enable nfsd_file garbage collection
      NFSD: Flesh out a documenting comment for filecache.c
      NFSD: Clean up nfs4_preprocess_stateid_op() call sites
      NFSD: Trace stateids returned via DELEGRETURN
      NFSD: Trace delegation revocations
      NFSD: Use const pointers as parameters to fh_ helpers
      NFSD: Update file_hashtbl() helpers
      NFSD: Clean up nfsd4_init_file()
      NFSD: Add a nfsd4_file_hash_remove() helper
      NFSD: Clean up find_or_add_file()
      NFSD: Refactor find_file()
      NFSD: Use rhashtable for managing nfs4_file objects
      NFSD: Fix licensing header in filecache.c
      NFSD: Add an nfsd_file_fsync tracepoint
      NFSD: Use only RQ_DROPME to signal the need to drop a reply
      Revert "SUNRPC: Use RMW bitops in single-threaded hot paths"
      NFSD: Use set_bit(RQ_DROPME)
      NFSD: copy the whole verifier in nfsd_copy_write_verifier
      NFSD: Protect against filesystem freezing
      NFSD: Avoid calling OPDESC() with ops->opnum == OP_ILLEGAL
      NFSD: Convert filecache to rhltable
      NFSD: Add an nfsd4_encode_nfstime4() helper
      nfsd: don't allow nfsd threads to be signalled.
      Documentation: Add missing documentation for EXPORT_OP flags

Colin Ian King (4):
      nfsd: remove redundant assignment to pointer 'this'
      NFSD: Initialize pointer ni with NULL and not plain integer 0
      nfsd: remove redundant assignment to variable len
      NFSD: Remove redundant assignment to variable host_err

Dai Ngo (26):
      NFSv4_2: SSC helper should use its own config.
      NFSv4.2: Remove ifdef CONFIG_NFSD from NFSv4.2 client SSC code.
      NFSD: delay unmount source's export after inter-server copy completed.
      nfsd: fix kernel test robot warning in SSC code
      fs/lock: documentation cleanup. Replace inode->i_lock with flc_lock.
      NFSD: add courteous server support for thread with only delegation
      NFSD: add support for share reservation conflict to courteous server
      NFSD: move create/destroy of laundry_wq to init_nfsd and exit_nfsd
      fs/lock: add helper locks_owner_has_blockers to check for blockers
      fs/lock: add 2 callbacks to lock_manager_operations to resolve conflict
      NFSD: add support for lock conflict to courteous server
      NFSD: Show state of courtesy client in client info
      NFSD: refactoring v4 specific code to a helper in nfs4state.c
      NFSD: keep track of the number of v4 clients in the system
      NFSD: limit the number of v4 clients to 1024 per 1GB of system memory
      NFSD: keep track of the number of courtesy clients in the system
      NFSD: add shrinker to reap courtesy clients on low memory condition
      NFSD: refactoring courtesy_client_reaper to a generic low memory shrinker
      NFSD: add support for sending CB_RECALL_ANY
      NFSD: add delegation reaper to react to low memory condition
      NFSD: register/unregister of nfsd-client shrinker at nfsd startup/shutdown time
      NFSD: replace delayed_work with work_struct for nfsd_client_shrinker
      NFSD: enhance inter-server copy cleanup
      NFSD: fix leaked reference count of nfsd4_ssc_umount_item
      NFSD: fix problems with cleanup on errors in nfsd4_copy
      NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop

Dan Carpenter (1):
      nfsd: fix double fget() bug in __write_ports_addfd()

Dave Wysochanski (1):
      nfsd4: Expose the callback address and state of each NFS4 client

David Disseldorp (1):
      exportfs: use pr_debug for unreachable debug statements

Eric W. Biederman (24):
      exec: Don't open code get_close_on_exec
      exec: Move unshare_files to fix posix file locking during exec
      exec: Simplify unshare_files
      exec: Remove reset_files_struct
      kcmp: In kcmp_epoll_target use fget_task
      bpf: In bpf_task_fd_query use fget_task
      proc/fd: In proc_fd_link use fget_task
      file: Rename __fcheck_files to files_lookup_fd_raw
      file: Factor files_lookup_fd_locked out of fcheck_files
      file: Replace fcheck_files with files_lookup_fd_rcu
      file: Rename fcheck lookup_fd_rcu
      file: Implement task_lookup_fd_rcu
      proc/fd: In tid_fd_mode use task_lookup_fd_rcu
      kcmp: In get_file_raw_ptr use task_lookup_fd_rcu
      file: Implement task_lookup_next_fd_rcu
      proc/fd: In proc_readfd_common use task_lookup_next_fd_rcu
      proc/fd: In fdinfo seq_show don't use get_files_struct
      file: Merge __fd_install into fd_install
      file: In f_dupfd read RLIMIT_NOFILE once.
      file: Merge __alloc_fd into alloc_fd
      file: Rename __close_fd to close_fd and remove the files parameter
      file: Replace ksys_close with close_fd
      exit: Implement kthread_exit
      exit: Rename module_put_and_exit to module_put_and_kthread_exit

Gabriel Krisman Bertazi (24):
      fsnotify: Don't insert unmergeable events in hashtable
      fanotify: Fold event size calculation to its own function
      fanotify: Split fsid check from other fid mode checks
      inotify: Don't force FS_IN_IGNORED
      fsnotify: Add helper to detect overflow_event
      fsnotify: Add wrapper around fsnotify_add_event
      fsnotify: Retrieve super block from the data field
      fsnotify: Protect fsnotify_handle_inode_event from no-inode events
      fsnotify: Pass group argument to free_event
      fanotify: Support null inode event in fanotify_dfid_inode
      fanotify: Allow file handle encoding for unhashed events
      fanotify: Encode empty file handle when no inode is provided
      fanotify: Require fid_mode for any non-fd event
      fsnotify: Support FS_ERROR event type
      fanotify: Reserve UAPI bits for FAN_FS_ERROR
      fanotify: Pre-allocate pool of error events
      fanotify: Support enqueueing of error events
      fanotify: Support merging of error events
      fanotify: Wrap object_fh inline space in a creator macro
      fanotify: Add helpers to decide whether to report FID/DFID
      fanotify: WARN_ON against too large file handles
      fanotify: Report fid info for file related file system errors
      fanotify: Emit generic error info for error event
      fanotify: Allow users to request FAN_FS_ERROR events

Gaosheng Cui (3):
      nfsd: remove nfsd4_prepare_cb_recall() declaration
      fsnotify: remove unused declaration
      fanotify: Remove obsoleted fanotify_event_has_path()

Guobin Huang (1):
      NFSD: Use DEFINE_SPINLOCK() for spinlock

Gustavo A. R. Silva (2):
      UAPI: nfsfh.h: Replace one-element array with flexible-array member
      nfsd: Fix fall-through warnings for Clang

Haowen Bai (1):
      SUNRPC: Return true/false (not 1/0) from bool functions

Huang Guobin (1):
      nfsd: Fix error return code in nfsd_file_cache_init()

J. Bruce Fields (41):
      nfsd: only call inode_query_iversion in the I_VERSION case
      nfsd: simplify nfsd4_change_info
      nfsd: minor nfsd4_change_attribute cleanup
      nfsd4: don't query change attribute in v2/v3 case
      Revert "nfsd4: support change_attr_type attribute"
      nfsd4: simplify process_lookup1
      nfsd: simplify process_lock
      nfsd: simplify nfsd_renew
      nfsd: rename lookup_clientid->set_client
      nfsd: refactor set_client
      nfsd: find_cpntf_state cleanup
      nfsd: remove unused set_client argument
      nfsd: simplify nfsd4_check_open_reclaim
      nfsd: cstate->session->se_client -> cstate->clp
      nfs: use change attribute for NFS re-exports
      nfsd: skip some unnecessary stats in the v4 case
      nfsd: helper for laundromat expiry calculations
      nfsd: COPY with length 0 should copy to end of file
      nfsd: don't ignore high bits of copy count
      nfsd: hash nfs4_files by inode number
      nfsd: track filehandle aliasing in nfs4_files
      nfsd: reshuffle some code
      nfsd: grant read delegations to clients holding writes
      nfsd: move some commit_metadata()s outside the inode lock
      nfsd: move fsnotify on client creation outside spinlock
      nfsd: rpc_peeraddr2str needs rcu lock
      nfsd: fix NULL dereference in nfs3svc_encode_getaclres
      nlm: minor nlm_lookup_file argument change
      nlm: minor refactoring
      lockd: update nlm_lookup_file reexport comment
      Keep read and write fds with each nlm_file
      nfs: don't atempt blocking locks on nfs reexports
      lockd: don't attempt blocking locks on nfs reexports
      nfs: don't allow reexport reclaims
      nfsd: update create verifier comment
      nfsd4: remove obselete comment
      nfsd: improve stateid access bitmask documentation
      nfs: block notification on fs with its own ->lock
      nfsd: fix crash on COPY_NOTIFY with special stateid
      lockd: fix server crash on reboot of client holding lock
      lockd: fix failure to cleanup client locks

Jakob Koschel (1):
      nfsd: fix using the correct variable for sizeof()

Jeff Layton (58):
      nfsd: add a new EXPORT_OP_NOWCC flag to struct export_operations
      nfsd: allow filesystems to opt out of subtree checking
      nfsd: close cached files prior to a REMOVE or RENAME that would replace target
      nfsd: Add errno mapping for EREMOTEIO
      nfsd: Retry once in nfsd_open on an -EOPENSTALE return
      lockd: set fl_owner when unlocking files
      lockd: fix nlm_close_files
      nfsd: eliminate the NFSD_FILE_BREAK_* flags
      nfsd: silence extraneous printk on nfsd.ko insertion
      NFSD: drop fh argument from alloc_init_deleg
      NFSD: verify the opened dentry after setting a delegation
      lockd: detect and reject lock arguments that overflow
      nfsd: clean up mounted_on_fileid handling
      nfsd: only fill out return pointer on success in nfsd4_lookup_stateid
      nfsd: fix comments about spinlock handling with delegations
      nfsd: make nfsd4_run_cb a bool return function
      nfsd: extra checks when freeing delegation stateids
      nfsd: fix nfsd_file_unhash_and_dispose
      nfsd: rework hashtable handling in nfsd_do_file_acquire
      nfsd: fix net-namespace logic in __nfsd_file_cache_purge
      nfsd: fix use-after-free in nfsd_file_do_acquire tracepoint
      nfsd: put the export reference in nfsd4_verify_deleg_dentry
      filelock: add a new locks_inode_context accessor function
      lockd: use locks_inode_context helper
      nfsd: use locks_inode_context helper
      nfsd: ignore requests to disable unsupported versions
      nfsd: move nfserrno() to vfs.c
      nfsd: allow disabling NFSv2 at compile time
      nfsd: remove the pages_flushed statistic from filecache
      nfsd: reorganize filecache.c
      nfsd: fix up the filecache laundrette scheduling
      nfsd: return error if nfs4_setacl fails
      lockd: set missing fl_flags field when retrieving args
      lockd: ensure we use the correct file descriptor when unlocking
      lockd: fix file selection in nlmsvc_cancel_blocked
      nfsd: rework refcounting in filecache
      nfsd: fix handling of cached open files in nfsd4_open codepath
      nfsd: don't free files unconditionally in __nfsd_file_cache_purge
      nfsd: don't destroy global nfs4_file table in per-net shutdown
      nfsd: allow nfsd_file_get to sanely handle a NULL pointer
      nfsd: clean up potential nfsd_file refcount leaks in COPY codepath
      nfsd: don't hand out delegation on setuid files being opened for write
      nfsd: fix courtesy client with deny mode handling in nfs4_upgrade_open
      nfsd: don't fsync nfsd_files on last close
      lockd: set file_lock start and end when decoding nlm4 testargs
      nfsd: don't replace page in rq_pages if it's a continuation of last page
      nfsd: call op_release, even when op_func returns an error
      nfsd: don't open-code clear_and_wake_up_bit
      nfsd: NFSD_FILE_KEY_INODE only needs to find GC'ed entries
      nfsd: simplify test_bit return in NFSD_FILE_KEY_FULL comparator
      nfsd: don't kill nfsd_files because of lease break error
      nfsd: add some comments to nfsd_file_do_acquire
      nfsd: don't take/put an extra reference when putting a file
      nfsd: update comment over __nfsd_file_cache_purge
      nfsd: allow reaping files still under writeback
      nfsd: simplify the delayed disposal list code
      nfsd: make a copy of struct iattr before calling notify_change
      nfsd: drop the nfsd_put helper

Jia He (2):
      sysctl: introduce new proc handler proc_dobool
      lockd: change the proc_handler for nsm_use_hostnames

Jiapeng Chong (2):
      nfsd: remove unused function
      NFSD: Fix inconsistent indenting

Jinpeng Cui (1):
      NFSD: remove redundant variable status

Julian Schroeder (1):
      nfsd: destroy percpu stats counters after reply cache shutdown

Kees Cook (1):
      NFSD: Avoid clashing function prototypes

Matthew Bobrowski (5):
      kernel/pid.c: remove static qualifier from pidfd_create()
      kernel/pid.c: implement additional checks upon pidfd_create() parameters
      fanotify: minor cosmetic adjustments to fid labels
      fanotify: introduce a generic info record copying helper
      fanotify: add pidfd support to the fanotify API

NeilBrown (48):
      nfsd: report client confirmation status in "info" file
      NFSD: remove vanity comments
      NFSD: move filehandle format declarations out of "uapi".
      NFSD: drop support for ancient filehandles
      NFSD: simplify struct nfsfh
      NFSD: handle errors better in write_ports_addfd()
      SUNRPC: change svc_get() to return the svc.
      SUNRPC/NFSD: clean up get/put functions.
      SUNRPC: stop using ->sv_nrthreads as a refcount
      nfsd: make nfsd_stats.th_cnt atomic_t
      SUNRPC: use sv_lock to protect updates to sv_nrthreads.
      NFSD: narrow nfsd_mutex protection in nfsd thread
      NFSD: Make it possible to use svc_set_num_threads_sync
      SUNRPC: discard svo_setup and rename svc_set_num_threads_sync()
      NFSD: simplify locking for network notifier.
      lockd: introduce nlmsvc_serv
      lockd: simplify management of network status notifiers
      lockd: move lockd_start_svc() call into lockd_create_svc()
      lockd: move svc_exit_thread() into the thread
      lockd: introduce lockd_put()
      lockd: rename lockd_create_svc() to lockd_get()
      SUNRPC: move the pool_map definitions (back) into svc.c
      SUNRPC: always treat sv_nrpools==1 as "not pooled"
      lockd: use svc_set_num_threads() for thread start and stop
      NFS: switch the callback service back to non-pooled.
      NFSD: simplify per-net file cache management
      NFS: restore module put when manager exits.
      NFSD: introduce struct nfsd_attrs
      NFSD: set attributes when creating symlinks
      NFSD: add security label to struct nfsd_attrs
      NFSD: add posix ACLs to struct nfsd_attrs
      NFSD: change nfsd_create()/nfsd_symlink() to unlock directory before returning.
      NFSD: always drop directory lock in nfsd_unlink()
      NFSD: only call fh_unlock() once in nfsd_link()
      NFSD: reduce locking in nfsd_lookup()
      NFSD: use explicit lock/unlock for directory ops
      NFSD: use (un)lock_inode instead of fh_(un)lock for file operations
      NFSD: discard fh_locked flag and fh_lock/fh_unlock
      NFSD: fix regression with setting ACLs.
      NFSD: drop fname and flen args from nfsd_create_locked()
      lockd: drop inappropriate svc_get() from locked_get()
      nfsd: Simplify code around svc_exit_thread() call in nfsd()
      nfsd: separate nfsd_last_thread() from nfsd_put()
      NFSD: fix possible oops when nfsd/pool_stats is closed.
      nfsd: call nfsd_last_thread() before final nfsd_put()
      nfsd: fix RELEASE_LOCKOWNER
      nfsd: don't take fi_lock in nfsd_break_deleg_cb()
      nfsd: don't call locks_release_private() twice concurrently

Olga Kornievskaia (2):
      NFSD add vfs_fsync after async copy is done
      NFSD enforce filehandle check for source file in COPY

Oliver Ford (1):
      fs: inotify: Fix typo in inotify comment

Ondrej Valousek (1):
      nfsd: Add support for the birth time attribute

Paul Menzel (1):
      nfsd: Log client tracking type log message as info instead of warning

Peng Tao (1):
      nfsd: map EBADF

Ricardo Ribalda (1):
      nfsd: Fix typo "accesible"

Shakeel Butt (1):
      inotify, memcg: account inotify instances to kmemcg

Tavian Barnes (1):
      nfsd: Fix creation time serialization order

Tetsuo Handa (1):
      NFSD: unregister shrinker when nfsd_init_net() fails

Tom Rix (1):
      NFSD: A semicolon is not needed after a switch statement.

Trond Myklebust (11):
      exportfs: Add a function to return the raw output from fh_to_dentry()
      nfsd: Fix up nfsd to ensure that timeout errors don't result in ESTALE
      nfsd: Set PF_LOCAL_THROTTLE on local filesystems only
      nfsd: Record NFSv4 pre/post-op attributes as non-atomic
      NFS: fix nfs_fetch_iversion()
      nfsd: Fix a warning for nfsd_file_close_inode
      nfsd: Add a tracepoint for errors in nfsd4_clone_file_range()
      nfsd: Fix a write performance regression
      nfsd: Clean up nfsd_file_put()
      lockd: set other missing fields when unlocking files
      nfsd: Fix a regression in nfsd_setattr()

Vasily Averin (3):
      nfsd: removed unused argument in nfsd_startup_generic()
      nfsd4: add refcount for nfsd4_blocked_lock
      fanotify: fix incorrect fmode_t casts

Waiman Long (1):
      inotify: Increase default inotify.max_user_watches limit to 1048576

Wei Yongjun (1):
      NFSD: Fix error return code in nfsd4_interssc_connect()

Wolfram Sang (2):
      NFSD: move from strlcpy with unused retval to strscpy
      lockd: move from strlcpy with unused retval to strscpy

Xin Gao (1):
      fsnotify: Fix comment typo

Xingyuan Mo (1):
      NFSD: fix use-after-free in nfsd4_ssc_setup_dul()

Xiu Jianfeng (1):
      NFSD: Use struct_size() helper in alloc_session()

Yang Li (1):
      fanotify: remove variable set but not used

Yu Hsiang Huang (1):
      nfsd: Prevent truncation of an unlinked inode from blocking access to its directory

Zhang Jiaming (1):
      NFSD: Fix space and spelling mistake

Zhang Xiaoxu (2):
      nfsd: Unregister the cld notifier when laundry_wq create failed
      nfsd: Fix null-ptr-deref in nfsd_fill_super()

Zheng Yongjun (1):
      fs/lockd: convert comma to semicolon

 Documentation/filesystems/files.rst          |    8 +-
 Documentation/filesystems/locking.rst        |   10 +-
 Documentation/filesystems/nfs/exporting.rst  |   78 +++++
 arch/powerpc/platforms/cell/spufs/coredump.c |    2 +-
 crypto/algboss.c                             |    4 +-
 fs/Kconfig                                   |    6 +-
 fs/autofs/dev-ioctl.c                        |    5 +-
 fs/cachefiles/namei.c                        |    9 +-
 fs/cifs/connect.c                            |    2 +-
 fs/coredump.c                                |    5 +-
 fs/ecryptfs/inode.c                          |   10 +-
 fs/exec.c                                    |   29 +-
 fs/exportfs/expfs.c                          |   40 ++-
 fs/file.c                                    |  177 +++++------
 fs/init.c                                    |    6 +-
 fs/lockd/clnt4xdr.c                          |    9 +-
 fs/lockd/clntproc.c                          |    3 -
 fs/lockd/host.c                              |    4 +-
 fs/lockd/svc.c                               |  262 +++++++--------
 fs/lockd/svc4proc.c                          |   70 +++-
 fs/lockd/svclock.c                           |   67 ++--
 fs/lockd/svcproc.c                           |   62 +++-
 fs/lockd/svcsubs.c                           |  123 +++++---
 fs/lockd/svcxdr.h                            |  142 +++++++++
 fs/lockd/xdr.c                               |  448 +++++++++++++-------------
 fs/lockd/xdr4.c                              |  472 +++++++++++++--------------
 fs/locks.c                                   |  102 ++++--
 fs/namei.c                                   |   21 +-
 fs/nfs/blocklayout/blocklayout.c             |    2 +-
 fs/nfs/blocklayout/dev.c                     |    2 +-
 fs/nfs/callback.c                            |  111 ++-----
 fs/nfs/callback_xdr.c                        |   33 +-
 fs/nfs/dir.c                                 |    2 +-
 fs/nfs/export.c                              |   17 +
 fs/nfs/file.c                                |    3 +
 fs/nfs/filelayout/filelayout.c               |    4 +-
 fs/nfs/filelayout/filelayoutdev.c            |    2 +-
 fs/nfs/flexfilelayout/flexfilelayout.c       |    4 +-
 fs/nfs/flexfilelayout/flexfilelayoutdev.c    |    2 +-
 fs/nfs/nfs42xdr.c                            |    2 +-
 fs/nfs/nfs4state.c                           |    2 +-
 fs/nfs/nfs4xdr.c                             |    6 +-
 fs/nfs/pagelist.c                            |    3 -
 fs/nfs/super.c                               |    8 +
 fs/nfs/write.c                               |    3 -
 fs/nfs_common/Makefile                       |    2 +-
 fs/nfs_common/nfs_ssc.c                      |    2 -
 fs/nfs_common/nfsacl.c                       |  123 ++++++++
 fs/nfsd/Kconfig                              |   36 ++-
 fs/nfsd/Makefile                             |    8 +-
 fs/nfsd/acl.h                                |    6 +-
 fs/nfsd/blocklayout.c                        |    1 +
 fs/nfsd/blocklayoutxdr.c                     |    1 +
 fs/nfsd/cache.h                              |    2 +-
 fs/nfsd/export.c                             |   74 ++++-
 fs/nfsd/export.h                             |   16 +-
 fs/nfsd/filecache.c                          | 1229 ++++++++++++++++++++++++++++++++++++++++-------------------------------
 fs/nfsd/filecache.h                          |   23 +-
 fs/nfsd/flexfilelayout.c                     |    3 +-
 fs/nfsd/lockd.c                              |   10 +-
 fs/nfsd/netns.h                              |   63 ++--
 fs/nfsd/nfs2acl.c                            |  214 +++++--------
 fs/nfsd/nfs3acl.c                            |  140 ++++----
 fs/nfsd/nfs3proc.c                           |  396 +++++++++++++++--------
 fs/nfsd/nfs3xdr.c                            | 1763 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------
 fs/nfsd/nfs4acl.c                            |   45 +--
 fs/nfsd/nfs4callback.c                       |  168 +++++++---
 fs/nfsd/nfs4idmap.c                          |    9 +-
 fs/nfsd/nfs4layouts.c                        |    4 +-
 fs/nfsd/nfs4proc.c                           | 1111 ++++++++++++++++++++++++++++++++++++++++------------------------
 fs/nfsd/nfs4recover.c                        |   20 +-
 fs/nfsd/nfs4state.c                          | 1725 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
 fs/nfsd/nfs4xdr.c                            | 3763 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------
 fs/nfsd/nfscache.c                           |  115 ++++---
 fs/nfsd/nfsctl.c                             |  169 +++++-----
 fs/nfsd/nfsd.h                               |   50 ++-
 fs/nfsd/nfsfh.c                              |  291 +++++++++--------
 fs/nfsd/nfsfh.h                              |  179 +++++------
 fs/nfsd/nfsproc.c                            |  262 ++++++++-------
 fs/nfsd/nfssvc.c                             |  356 ++++++++++-----------
 fs/nfsd/nfsxdr.c                             |  834 +++++++++++++++++++++++++-----------------------
 fs/nfsd/state.h                              |   69 +++-
 fs/nfsd/stats.c                              |  126 +++++---
 fs/nfsd/stats.h                              |   96 ++++--
 fs/nfsd/trace.c                              |    1 +
 fs/nfsd/trace.h                              |  894 ++++++++++++++++++++++++++++++++++++++++++++++------
 fs/nfsd/vfs.c                                |  931 +++++++++++++++++++++++++++---------------------------
 fs/nfsd/vfs.h                                |   60 ++--
 fs/nfsd/xdr.h                                |   68 ++--
 fs/nfsd/xdr3.h                               |  116 ++++---
 fs/nfsd/xdr4.h                               |  127 ++++----
 fs/nfsd/xdr4cb.h                             |    6 +
 fs/notify/dnotify/dnotify.c                  |   17 +-
 fs/notify/fanotify/fanotify.c                |  487 +++++++++++++++++++++-------
 fs/notify/fanotify/fanotify.h                |  252 +++++++++++++--
 fs/notify/fanotify/fanotify_user.c           |  882 +++++++++++++++++++++++++++++++++++++++++----------
 fs/notify/fdinfo.c                           |   19 +-
 fs/notify/fsnotify.c                         |  183 ++++++-----
 fs/notify/fsnotify.h                         |   19 +-
 fs/notify/group.c                            |   38 ++-
 fs/notify/inotify/inotify.h                  |   11 +-
 fs/notify/inotify/inotify_fsnotify.c         |   12 +-
 fs/notify/inotify/inotify_user.c             |   87 +++--
 fs/notify/mark.c                             |  172 ++++++----
 fs/notify/notification.c                     |   78 ++---
 fs/open.c                                    |   49 ++-
 fs/overlayfs/overlayfs.h                     |    9 +-
 fs/proc/fd.c                                 |   48 +--
 fs/udf/file.c                                |    2 +-
 fs/verity/enable.c                           |    2 +-
 include/linux/dnotify.h                      |    2 +-
 include/linux/errno.h                        |    1 +
 include/linux/exportfs.h                     |   15 +
 include/linux/fanotify.h                     |   74 ++++-
 include/linux/fdtable.h                      |   37 ++-
 include/linux/fs.h                           |   54 +++-
 include/linux/fsnotify.h                     |   77 +++--
 include/linux/fsnotify_backend.h             |  372 ++++++++++++++++++----
 include/linux/iversion.h                     |   13 +
 include/linux/kallsyms.h                     |   17 +-
 include/linux/kthread.h                      |    1 +
 include/linux/lockd/bind.h                   |    3 +-
 include/linux/lockd/lockd.h                  |   17 +-
 include/linux/lockd/xdr.h                    |   35 +-
 include/linux/lockd/xdr4.h                   |   33 +-
 include/linux/module.h                       |   24 +-
 include/linux/nfs.h                          |    8 -
 include/linux/nfs4.h                         |   21 +-
 include/linux/nfs_ssc.h                      |   14 +
 include/linux/nfsacl.h                       |    6 +
 include/linux/pid.h                          |    1 +
 include/linux/sched/user.h                   |    3 -
 include/linux/sunrpc/msg_prot.h              |    3 -
 include/linux/sunrpc/svc.h                   |  151 +++++----
 include/linux/sunrpc/svc_rdma.h              |    4 +-
 include/linux/sunrpc/svc_xprt.h              |   16 +-
 include/linux/sunrpc/svcauth.h               |    4 +-
 include/linux/sunrpc/svcsock.h               |    7 +-
 include/linux/sunrpc/xdr.h                   |  153 ++++++++-
 include/linux/syscalls.h                     |   12 -
 include/linux/sysctl.h                       |    2 +
 include/linux/user_namespace.h               |    4 +
 include/trace/events/sunrpc.h                |   26 +-
 include/uapi/linux/fanotify.h                |   42 +++
 include/uapi/linux/nfs3.h                    |    6 +
 include/uapi/linux/nfsd/nfsfh.h              |  105 ------
 kernel/audit_fsnotify.c                      |    8 +-
 kernel/audit_tree.c                          |    2 +-
 kernel/audit_watch.c                         |    5 +-
 kernel/bpf/inode.c                           |    2 +-
 kernel/bpf/syscall.c                         |   20 +-
 kernel/bpf/task_iter.c                       |    2 +-
 kernel/fork.c                                |   12 +-
 kernel/kallsyms.c                            |    8 +-
 kernel/kcmp.c                                |   29 +-
 kernel/kthread.c                             |   23 +-
 kernel/livepatch/core.c                      |    7 +-
 kernel/module.c                              |   26 +-
 kernel/pid.c                                 |   15 +-
 kernel/sys.c                                 |    2 +-
 kernel/sysctl.c                              |   54 +++-
 kernel/trace/trace_kprobe.c                  |    4 +-
 kernel/ucount.c                              |    4 +
 mm/madvise.c                                 |    2 +-
 mm/memcontrol.c                              |    2 +-
 mm/mincore.c                                 |    2 +-
 net/bluetooth/bnep/core.c                    |    2 +-
 net/bluetooth/cmtp/core.c                    |    2 +-
 net/bluetooth/hidp/core.c                    |    2 +-
 net/sunrpc/auth_gss/gss_rpc_xdr.c            |    2 +-
 net/sunrpc/auth_gss/svcauth_gss.c            |   47 +--
 net/sunrpc/sched.c                           |    1 +
 net/sunrpc/svc.c                             |  314 +++++++++---------
 net/sunrpc/svc_xprt.c                        |  104 +++---
 net/sunrpc/svcauth.c                         |    8 +-
 net/sunrpc/svcauth_unix.c                    |   18 +-
 net/sunrpc/svcsock.c                         |   32 +-
 net/sunrpc/xdr.c                             |  112 +++++--
 net/sunrpc/xprtrdma/svc_rdma_backchannel.c   |    2 +-
 net/sunrpc/xprtrdma/svc_rdma_sendto.c        |   32 +-
 net/sunrpc/xprtrdma/svc_rdma_transport.c     |    2 +-
 net/unix/af_unix.c                           |    2 +-
 tools/objtool/check.c                        |    3 +-
 183 files changed, 13910 insertions(+), 8823 deletions(-)
 create mode 100644 fs/lockd/svcxdr.h
 delete mode 100644 include/uapi/linux/nfsd/nfsfh.h

Comments

Chuck Lever III June 17, 2024, 7:38 p.m. UTC | #1
Resend: Corrected email address for stable


> Begin forwarded message:
> 
> From: Chuck Lever <chuck.lever@oracle.com>
> Subject: [GIT PULL 5.10.y] NFSD filecache fixes
> Date: June 17, 2024 at 3:30:59 PM EDT
> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
> Cc: linux-nfs@vger.kernel.org, stable@tissot.1015granger.net
> 
> Hi Greg, Sasha-
> 
> Here is a backport of nearly every NFSD patch from v5.11 until
> v6.3, plus subsequent fixes, onto LTS v5.10.219. This addresses
> the many NFSD filecache-related scalability problems in v5.10's
> NFSD. This also contains fixes for issues found in the v5.15
> NFSD backport over the past several months.
> 
> I've run this kernel through the usual upstream CI testing for
> NFSD, and it seems solid.
> 
> In lieu of sending an mbox containing all of these patches, here's
> a pull request that gives you the co-ordinates for the full series
> enabling you to handle the merge however you prefer.
> 
> 
> --- cut here ---
> 
> The following changes since commit a2ed1606213906ac22fd66bebb34b88f8e24224b:
> 
>  Linux 5.10.219 (2024-06-16 13:32:37 +0200)
> 
> are available in the Git repository at:
> 
>  https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git nfsd-5.10.y
> 
> for you to fetch changes up to 297ad218672e7f8d6e1f6af048c42a42760f56b1:
> 
>  nfsd: Fix a regression in nfsd_setattr() (2024-06-17 09:49:21 -0400)
> 
> ----------------------------------------------------------------
> Al Viro (2):
>      nfsd_splice_actor(): handle compound pages
>      fs/notify: constify path
> 
> Alex Shi (1):
>      nfsd/nfs3: remove unused macro nfsd3_fhandleres
> 
> Amir Goldstein (52):
>      nfsd: remove unused stats counters
>      nfsd: protect concurrent access to nfsd stats counters
>      nfsd: report per-export stats
>      fsnotify: allow fsnotify_{peek,remove}_first_event with empty queue
>      fanotify: reduce event objectid to 29-bit hash
>      fanotify: mix event info and pid into merge key hash
>      fsnotify: use hash table for faster events merge
>      fanotify: limit number of event merge attempts
>      fanotify: configurable limits via sysfs
>      fanotify: support limited functionality for unprivileged users
>      fanotify: fix permission model of unprivileged group
>      fsnotify: replace igrab() with ihold() on attach connector
>      fsnotify: count s_fsnotify_inode_refs for attached connectors
>      fsnotify: count all objects with attached connectors
>      fsnotify: optimize the case of no marks of any type
>      fsnotify: fix sb_connectors leak
>      fsnotify: pass data_type to fsnotify_name()
>      fsnotify: pass dentry instead of inode data
>      fsnotify: clarify contract for create event hooks
>      fsnotify: clarify object type argument
>      fsnotify: separate mark iterator type from object type enum
>      fanotify: introduce group flag FAN_REPORT_TARGET_FID
>      fsnotify: generate FS_RENAME event with rich information
>      fanotify: use macros to get the offset to fanotify_info buffer
>      fanotify: use helpers to parcel fanotify_info buffer
>      fanotify: support secondary dir fh and name in fanotify_info
>      fanotify: record old and new parent and name in FAN_RENAME event
>      fanotify: record either old name new name or both for FAN_RENAME
>      fanotify: report old and/or new parent+name in FAN_RENAME event
>      fanotify: wire up FAN_RENAME event
>      fsnotify: fix merge with parent's ignored mask
>      fsnotify: optimize FS_MODIFY events with no ignored masks
>      fanotify: do not allow setting dirent events in mask of non-dir
>      inotify: move control flags from mask to mark flags
>      fsnotify: pass flags argument to fsnotify_alloc_group()
>      fsnotify: make allow_dups a property of the group
>      fsnotify: create helpers for group mark_mutex lock
>      inotify: use fsnotify group lock helpers
>      nfsd: use fsnotify group lock helpers
>      dnotify: use fsnotify group lock helpers
>      fsnotify: allow adding an inode mark without pinning inode
>      fanotify: create helper fanotify_mark_user_flags()
>      fanotify: factor out helper fanotify_mark_update_flags()
>      fanotify: implement "evictable" inode marks
>      fanotify: use fsnotify group lock helpers
>      fanotify: enable "evictable" inode marks
>      fsnotify: introduce mark type iterator
>      fsnotify: consistent behavior for parent not watching children
>      fanotify: refine the validation checks on non-dir inode mask
>      fanotify: prepare for setting event flags in ignore mask
>      fanotify: cleanups for fanotify_mark() input validations
>      fanotify: introduce FAN_MARK_IGNORE
> 
> Anna Schumaker (1):
>      NFSD: Simplify READ_PLUS
> 
> Bang Li (1):
>      fsnotify: remove redundant parameter judgment
> 
> Benjamin Coddington (1):
>      NLM: Defend against file_lock changes after vfs_test_lock()
> 
> Brian Foster (1):
>      NFSD: pass range end to vfs_fsync_range() instead of count
> 
> Changcheng Deng (1):
>      NFSD:fix boolreturn.cocci warning
> 
> ChenXiaoSong (5):
>      nfsd: use DEFINE_PROC_SHOW_ATTRIBUTE to define nfsd_proc_ops
>      nfsd: use DEFINE_SHOW_ATTRIBUTE to define export_features_fops and supported_enctypes_fops
>      nfsd: use DEFINE_SHOW_ATTRIBUTE to define client_info_fops
>      nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops
>      nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops
> 
> Christian Brauner (3):
>      fs: add file and path permissions helpers
>      namei: introduce struct renamedata
>      fanotify_user: use upper_32_bits() to verify mask
> 
> Christoph Hellwig (4):
>      module: unexport find_module and module_mutex
>      module: use RCU to synchronize find_module
>      kallsyms: refactor {,module_}kallsyms_on_each_symbol
>      kallsyms: only build {,module_}kallsyms_on_each_symbol when required
> 
> Christophe JAILLET (2):
>      nfsd: Avoid some useless tests
>      nfsd: Propagate some error code returned by memdup_user()
> 
> Chuck Lever (409):
>      SUNRPC: Rename svc_encode_read_payload()
>      NFSD: Invoke svc_encode_result_payload() in "read" NFSD encoders
>      NFSD: Clean up the show_nf_may macro
>      NFSD: Remove extra "0x" in tracepoint format specifier
>      NFSD: Add SPDX header for fs/nfsd/trace.c
>      SUNRPC: Add xdr_set_scratch_page() and xdr_reset_scratch_buffer()
>      SUNRPC: Prepare for xdr_stream-style decoding on the server-side
>      NFSD: Add common helpers to decode void args and encode void results
>      NFSD: Add tracepoints in nfsd_dispatch()
>      NFSD: Add tracepoints in nfsd4_decode/encode_compound()
>      NFSD: Replace the internals of the READ_BUF() macro
>      NFSD: Replace READ* macros in nfsd4_decode_access()
>      NFSD: Replace READ* macros in nfsd4_decode_close()
>      NFSD: Replace READ* macros in nfsd4_decode_commit()
>      NFSD: Change the way the expected length of a fattr4 is checked
>      NFSD: Replace READ* macros that decode the fattr4 size attribute
>      NFSD: Replace READ* macros that decode the fattr4 acl attribute
>      NFSD: Replace READ* macros that decode the fattr4 mode attribute
>      NFSD: Replace READ* macros that decode the fattr4 owner attribute
>      NFSD: Replace READ* macros that decode the fattr4 owner_group attribute
>      NFSD: Replace READ* macros that decode the fattr4 time_set attributes
>      NFSD: Replace READ* macros that decode the fattr4 security label attribute
>      NFSD: Replace READ* macros that decode the fattr4 umask attribute
>      NFSD: Replace READ* macros in nfsd4_decode_fattr()
>      NFSD: Replace READ* macros in nfsd4_decode_create()
>      NFSD: Replace READ* macros in nfsd4_decode_delegreturn()
>      NFSD: Replace READ* macros in nfsd4_decode_getattr()
>      NFSD: Replace READ* macros in nfsd4_decode_link()
>      NFSD: Relocate nfsd4_decode_opaque()
>      NFSD: Add helpers to decode a clientid4 and an NFSv4 state owner
>      NFSD: Add helper for decoding locker4
>      NFSD: Replace READ* macros in nfsd4_decode_lock()
>      NFSD: Replace READ* macros in nfsd4_decode_lockt()
>      NFSD: Replace READ* macros in nfsd4_decode_locku()
>      NFSD: Replace READ* macros in nfsd4_decode_lookup()
>      NFSD: Add helper to decode NFSv4 verifiers
>      NFSD: Add helper to decode OPEN's createhow4 argument
>      NFSD: Add helper to decode OPEN's openflag4 argument
>      NFSD: Replace READ* macros in nfsd4_decode_share_access()
>      NFSD: Replace READ* macros in nfsd4_decode_share_deny()
>      NFSD: Add helper to decode OPEN's open_claim4 argument
>      NFSD: Replace READ* macros in nfsd4_decode_open()
>      NFSD: Replace READ* macros in nfsd4_decode_open_confirm()
>      NFSD: Replace READ* macros in nfsd4_decode_open_downgrade()
>      NFSD: Replace READ* macros in nfsd4_decode_putfh()
>      NFSD: Replace READ* macros in nfsd4_decode_read()
>      NFSD: Replace READ* macros in nfsd4_decode_readdir()
>      NFSD: Replace READ* macros in nfsd4_decode_remove()
>      NFSD: Replace READ* macros in nfsd4_decode_rename()
>      NFSD: Replace READ* macros in nfsd4_decode_renew()
>      NFSD: Replace READ* macros in nfsd4_decode_secinfo()
>      NFSD: Replace READ* macros in nfsd4_decode_setattr()
>      NFSD: Replace READ* macros in nfsd4_decode_setclientid()
>      NFSD: Replace READ* macros in nfsd4_decode_setclientid_confirm()
>      NFSD: Replace READ* macros in nfsd4_decode_verify()
>      NFSD: Replace READ* macros in nfsd4_decode_write()
>      NFSD: Replace READ* macros in nfsd4_decode_release_lockowner()
>      NFSD: Replace READ* macros in nfsd4_decode_cb_sec()
>      NFSD: Replace READ* macros in nfsd4_decode_backchannel_ctl()
>      NFSD: Replace READ* macros in nfsd4_decode_bind_conn_to_session()
>      NFSD: Add a separate decoder to handle state_protect_ops
>      NFSD: Add a separate decoder for ssv_sp_parms
>      NFSD: Add a helper to decode state_protect4_a
>      NFSD: Add a helper to decode nfs_impl_id4
>      NFSD: Add a helper to decode channel_attrs4
>      NFSD: Replace READ* macros in nfsd4_decode_create_session()
>      NFSD: Replace READ* macros in nfsd4_decode_destroy_session()
>      NFSD: Replace READ* macros in nfsd4_decode_free_stateid()
>      NFSD: Replace READ* macros in nfsd4_decode_getdeviceinfo()
>      NFSD: Replace READ* macros in nfsd4_decode_layoutcommit()
>      NFSD: Replace READ* macros in nfsd4_decode_layoutget()
>      NFSD: Replace READ* macros in nfsd4_decode_layoutreturn()
>      NFSD: Replace READ* macros in nfsd4_decode_secinfo_no_name()
>      NFSD: Replace READ* macros in nfsd4_decode_sequence()
>      NFSD: Replace READ* macros in nfsd4_decode_test_stateid()
>      NFSD: Replace READ* macros in nfsd4_decode_destroy_clientid()
>      NFSD: Replace READ* macros in nfsd4_decode_reclaim_complete()
>      NFSD: Replace READ* macros in nfsd4_decode_fallocate()
>      NFSD: Replace READ* macros in nfsd4_decode_nl4_server()
>      NFSD: Replace READ* macros in nfsd4_decode_copy()
>      NFSD: Replace READ* macros in nfsd4_decode_copy_notify()
>      NFSD: Replace READ* macros in nfsd4_decode_offload_status()
>      NFSD: Replace READ* macros in nfsd4_decode_seek()
>      NFSD: Replace READ* macros in nfsd4_decode_clone()
>      NFSD: Replace READ* macros in nfsd4_decode_xattr_name()
>      NFSD: Replace READ* macros in nfsd4_decode_setxattr()
>      NFSD: Replace READ* macros in nfsd4_decode_listxattrs()
>      NFSD: Make nfsd4_ops::opnum a u32
>      NFSD: Replace READ* macros in nfsd4_decode_compound()
>      NFSD: Remove macros that are no longer used
>      Revert "fget: clarify and improve __fget_files() implementation"
>      NFSD: Fix sparse warning in nfssvc.c
>      NFSD: Restore NFSv4 decoding's SAVEMEM functionality
>      SUNRPC: Make trace_svc_process() display the RPC procedure symbolically
>      SUNRPC: Display RPC procedure names instead of proc numbers
>      SUNRPC: Move definition of XDR_UNIT
>      NFSD: Update GETATTR3args decoder to use struct xdr_stream
>      NFSD: Update ACCESS3arg decoder to use struct xdr_stream
>      NFSD: Update READ3arg decoder to use struct xdr_stream
>      NFSD: Update WRITE3arg decoder to use struct xdr_stream
>      NFSD: Update READLINK3arg decoder to use struct xdr_stream
>      NFSD: Fix returned READDIR offset cookie
>      NFSD: Add helper to set up the pages where the dirlist is encoded
>      NFSD: Update READDIR3args decoders to use struct xdr_stream
>      NFSD: Update COMMIT3arg decoder to use struct xdr_stream
>      NFSD: Update the NFSv3 DIROPargs decoder to use struct xdr_stream
>      NFSD: Update the RENAME3args decoder to use struct xdr_stream
>      NFSD: Update the LINK3args decoder to use struct xdr_stream
>      NFSD: Update the SETATTR3args decoder to use struct xdr_stream
>      NFSD: Update the CREATE3args decoder to use struct xdr_stream
>      NFSD: Update the MKDIR3args decoder to use struct xdr_stream
>      NFSD: Update the SYMLINK3args decoder to use struct xdr_stream
>      NFSD: Update the MKNOD3args decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 GETATTR argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 READ argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 WRITE argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 READLINK argument decoder to use struct xdr_stream
>      NFSD: Add helper to set up the pages where the dirlist is encoded
>      NFSD: Update the NFSv2 READDIR argument decoder to use struct xdr_stream
>      NFSD: Update NFSv2 diropargs decoding to use struct xdr_stream
>      NFSD: Update the NFSv2 RENAME argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 LINK argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 SETATTR argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 CREATE argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 SYMLINK argument decoder to use struct xdr_stream
>      NFSD: Remove argument length checking in nfsd_dispatch()
>      NFSD: Update the NFSv2 GETACL argument decoder to use struct xdr_stream
>      NFSD: Add an xdr_stream-based decoder for NFSv2/3 ACLs
>      NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 ACL GETATTR argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 ACL ACCESS argument decoder to use struct xdr_stream
>      NFSD: Clean up after updating NFSv2 ACL decoders
>      NFSD: Update the NFSv3 GETACL argument decoder to use struct xdr_stream
>      NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream
>      NFSD: Clean up after updating NFSv3 ACL decoders
>      NFSD: Extract the svcxdr_init_encode() helper
>      NFSD: Update the GETATTR3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 ACCESS3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 LOOKUP3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 wccstat result encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 READLINK3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 READ3res encode to use struct xdr_stream
>      NFSD: Update the NFSv3 WRITE3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 CREATE family of encoders to use struct xdr_stream
>      NFSD: Update the NFSv3 RENAMEv3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 LINK3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 FSSTAT3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 FSINFO3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 PATHCONF3res encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 COMMIT3res encoder to use struct xdr_stream
>      NFSD: Add a helper that encodes NFSv3 directory offset cookies
>      NFSD: Count bytes instead of pages in the NFSv3 READDIR encoder
>      NFSD: Update the NFSv3 READDIR3res encoder to use struct xdr_stream
>      NFSD: Update NFSv3 READDIR entry encoders to use struct xdr_stream
>      NFSD: Remove unused NFSv3 directory entry encoders
>      NFSD: Reduce svc_rqst::rq_pages churn during READDIR operations
>      NFSD: Update the NFSv2 stat encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 attrstat encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 diropres encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 READLINK result encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 READ result encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 STATFS result encoder to use struct xdr_stream
>      NFSD: Add a helper that encodes NFSv3 directory offset cookies
>      NFSD: Count bytes instead of pages in the NFSv2 READDIR encoder
>      NFSD: Update the NFSv2 READDIR result encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 READDIR entry encoder to use struct xdr_stream
>      NFSD: Remove unused NFSv2 directory entry encoders
>      NFSD: Add an xdr_stream-based encoder for NFSv2/3 ACLs
>      NFSD: Update the NFSv2 GETACL result encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 SETACL result encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 ACL GETATTR result encoder to use struct xdr_stream
>      NFSD: Update the NFSv2 ACL ACCESS result encoder to use struct xdr_stream
>      NFSD: Clean up after updating NFSv2 ACL encoders
>      NFSD: Update the NFSv3 GETACL result encoder to use struct xdr_stream
>      NFSD: Update the NFSv3 SETACL result encoder to use struct xdr_stream
>      NFSD: Clean up after updating NFSv3 ACL encoders
>      NFSD: Add a tracepoint to record directory entry encoding
>      NFSD: Clean up NFSDDBG_FACILITY macro
>      SUNRPC: Export svc_xprt_received()
>      Revert "fanotify: limit number of event merge attempts"
>      NFSD: Add an RPC authflavor tracepoint display helper
>      NFSD: Add nfsd_clid_cred_mismatch tracepoint
>      NFSD: Add nfsd_clid_verf_mismatch tracepoint
>      NFSD: Remove trace_nfsd_clid_inuse_err
>      NFSD: Add nfsd_clid_confirmed tracepoint
>      NFSD: Add nfsd_clid_reclaim_complete tracepoint
>      NFSD: Add nfsd_clid_destroyed tracepoint
>      NFSD: Add a couple more nfsd_clid_expired call sites
>      NFSD: Add tracepoints for SETCLIENTID edge cases
>      NFSD: Add tracepoints for EXCHANGEID edge cases
>      NFSD: Constify @fh argument of knfsd_fh_hash()
>      NFSD: Capture every CB state transition
>      NFSD: Drop TRACE_DEFINE_ENUM for NFSD4_CB_<state> macros
>      NFSD: Add cb_lost tracepoint
>      NFSD: Adjust cb_shutdown tracepoint
>      NFSD: Enhance the nfsd_cb_setup tracepoint
>      NFSD: Add an nfsd_cb_lm_notify tracepoint
>      NFSD: Add an nfsd_cb_offload tracepoint
>      NFSD: Replace the nfsd_deleg_break tracepoint
>      NFSD: Add an nfsd_cb_probe tracepoint
>      NFSD: Remove the nfsd_cb_work and nfsd_cb_done tracepoints
>      NFSD: Update nfsd_cb_args tracepoint
>      lockd: Remove stale comments
>      lockd: Create a simplified .vs_dispatch method for NLM requests
>      lockd: Common NLM XDR helpers
>      lockd: Update the NLMv1 void argument decoder to use struct xdr_stream
>      lockd: Update the NLMv1 TEST arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv1 LOCK arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv1 CANCEL arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv1 UNLOCK arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv1 nlm_res arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv1 SM_NOTIFY arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv1 SHARE arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv1 FREE_ALL arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv1 void results encoder to use struct xdr_stream
>      lockd: Update the NLMv1 TEST results encoder to use struct xdr_stream
>      lockd: Update the NLMv1 nlm_res results encoder to use struct xdr_stream
>      lockd: Update the NLMv1 SHARE results encoder to use struct xdr_stream
>      lockd: Update the NLMv4 void arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 TEST arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 LOCK arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 CANCEL arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 UNLOCK arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 nlm_res arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 SM_NOTIFY arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 SHARE arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 FREE_ALL arguments decoder to use struct xdr_stream
>      lockd: Update the NLMv4 void results encoder to use struct xdr_stream
>      lockd: Update the NLMv4 TEST results encoder to use struct xdr_stream
>      lockd: Update the NLMv4 nlm_res results encoder to use struct xdr_stream
>      [ Upstream commit 0ff5b50ab1f7f39862d0cdf6803978d31b27f25e ]
>      NFSD: Prevent a possible oops in the nfs_dirent() tracepoint
>      NFSD: Clean up splice actor
>      SUNRPC: Add svc_rqst_replace_page() API
>      NFSD: Batch release pages during splice read
>      SUNRPC: Add svc_rqst::rq_auth_stat
>      SUNRPC: Set rq_auth_stat in the pg_authenticate() callout
>      SUNRPC: Eliminate the RQ_AUTHERR flag
>      NFS: Add a private local dispatcher for NFSv4 callback operations
>      NFS: Remove unused callback void decoder
>      NLM: Fix svcxdr_encode_owner()
>      SUNRPC: Trace calls to .rpc_call_done
>      NFSD: Optimize DRC bucket pruning
>      NFSD: Have legacy NFSD WRITE decoders use xdr_stream_subsegment()
>      SUNRPC: Replace the "__be32 *p" parameter to .pc_decode
>      SUNRPC: Change return value type of .pc_decode
>      NFSD: Save location of NFSv4 COMPOUND status
>      SUNRPC: Replace the "__be32 *p" parameter to .pc_encode
>      SUNRPC: Change return value type of .pc_encode
>      NFSD: Fix exposure in nfsd4_decode_bitmap()
>      NFSD: Fix READDIR buffer overflow
>      NFSD: Fix sparse warning
>      NFSD: Remove be32_to_cpu() from DRC hash function
>      NFSD: Combine XDR error tracepoints
>      NFSD: De-duplicate nfsd4_decode_bitmap4()
>      NFSD: Fix zero-length NFSv3 WRITEs
>      NFSD: Clean up nfsd_vfs_write()
>      NFSD: De-duplicate net_generic(SVC_NET(rqstp), nfsd_net_id)
>      NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id)
>      NFSD: Write verifier might go backwards
>      NFSD: Clean up the nfsd_net::nfssvc_boot field
>      NFSD: Rename boot verifier functions
>      NFSD: Trace boot verifier resets
>      Revert "nfsd: skip some unnecessary stats in the v4 case"
>      NFSD: Move fill_pre_wcc() and fill_post_wcc()
>      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: COMMIT operations must not return NFS?ERR_INVAL
>      NFSD: Deprecate NFS_OFFSET_MAX
>      NFSD: De-duplicate hash bucket indexing
>      NFSD: Skip extra computation for RC_NOCACHE case
>      NFSD: Streamline the rare "found" case
>      SUNRPC: Remove the .svo_enqueue_xprt method
>      SUNRPC: Merge svc_do_enqueue_xprt() into svc_enqueue_xprt()
>      SUNRPC: Remove svo_shutdown method
>      SUNRPC: Rename svc_create_xprt()
>      SUNRPC: Rename svc_close_xprt()
>      SUNRPC: Remove svc_shutdown_net()
>      NFSD: Remove svc_serv_ops::svo_module
>      NFSD: Move svc_serv_ops::svo_function into struct svc_serv
>      NFSD: Remove CONFIG_NFSD_V3
>      NFSD: Clean up _lm_ operation names
>      NFSD: Clean up nfsd_splice_actor()
>      NFSD: Clean up nfsd3_proc_create()
>      NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create()
>      NFSD: Refactor nfsd_create_setattr()
>      NFSD: Refactor NFSv3 CREATE
>      NFSD: Refactor NFSv4 OPEN(CREATE)
>      NFSD: Remove do_nfsd_create()
>      NFSD: Clean up nfsd_open_verified()
>      NFSD: Instantiate a struct file when creating a regular NFSv4 file
>      NFSD: Remove dprintk call sites from tail of nfsd4_open()
>      NFSD: Fix whitespace
>      NFSD: Move documenting comment for nfsd4_process_open2()
>      NFSD: Trace filecache opens
>      NFSD: Clean up the show_nf_flags() macro
>      SUNRPC: Use RMW bitops in single-threaded hot paths
>      NFSD: Modernize nfsd4_release_lockowner()
>      NFSD: Add documenting comment for nfsd4_release_lockowner()
>      NFSD: nfsd_file_put() can sleep
>      NFSD: Fix potential use-after-free in nfsd_file_put()
>      SUNRPC: Optimize xdr_reserve_space()
>      NFSD: Decode NFSv4 birth time attribute
>      SUNRPC: Fix xdr_encode_bool()
>      NFSD: Demote a WARN to a pr_warn()
>      NFSD: Report filecache LRU size
>      NFSD: Report count of calls to nfsd_file_acquire()
>      NFSD: Report count of freed filecache items
>      NFSD: Report average age of filecache items
>      NFSD: Add nfsd_file_lru_dispose_list() helper
>      NFSD: Refactor nfsd_file_gc()
>      NFSD: Refactor nfsd_file_lru_scan()
>      NFSD: Report the number of items evicted by the LRU walk
>      NFSD: Record number of flush calls
>      NFSD: Zero counters when the filecache is re-initialized
>      NFSD: Hook up the filecache stat file
>      NFSD: WARN when freeing an item still linked via nf_lru
>      NFSD: Trace filecache LRU activity
>      NFSD: Leave open files out of the filecache LRU
>      NFSD: Fix the filecache LRU shrinker
>      NFSD: Never call nfsd_file_gc() in foreground paths
>      NFSD: No longer record nf_hashval in the trace log
>      NFSD: Remove lockdep assertion from unhash_and_release_locked()
>      NFSD: nfsd_file_unhash can compute hashval from nf->nf_inode
>      NFSD: Refactor __nfsd_file_close_inode()
>      NFSD: nfsd_file_hash_remove can compute hashval
>      NFSD: Remove nfsd_file::nf_hashval
>      NFSD: Replace the "init once" mechanism
>      NFSD: Set up an rhashtable for the filecache
>      NFSD: Convert the filecache to use rhashtable
>      NFSD: Clean up unused code after rhashtable conversion
>      NFSD: Separate tracepoints for acquire and create
>      NFSD: Move nfsd_file_trace_alloc() tracepoint
>      NFSD: NFSv4 CLOSE should release an nfsd_file immediately
>      NFSD: Ensure nf_inode is never dereferenced
>      NFSD: Optimize nfsd4_encode_operation()
>      NFSD: Optimize nfsd4_encode_fattr()
>      NFSD: Clean up SPLICE_OK in nfsd4_encode_read()
>      NFSD: Add an nfsd4_read::rd_eof field
>      NFSD: Optimize nfsd4_encode_readv()
>      NFSD: Simplify starting_len
>      NFSD: Use xdr_pad_size()
>      NFSD: Clean up nfsd4_encode_readlink()
>      NFSD: Fix strncpy() fortify warning
>      NFSD: nfserrno(-ENOMEM) is nfserr_jukebox
>      NFSD: Shrink size of struct nfsd4_copy_notify
>      NFSD: Shrink size of struct nfsd4_copy
>      NFSD: Reorder the fields in struct nfsd4_op
>      NFSD: Make nfs4_put_copy() static
>      NFSD: Replace boolean fields in struct nfsd4_copy
>      NFSD: Refactor nfsd4_cleanup_inter_ssc() (1/2)
>      NFSD: Refactor nfsd4_cleanup_inter_ssc() (2/2)
>      NFSD: Refactor nfsd4_do_copy()
>      NFSD: Remove kmalloc from nfsd4_do_async_copy()
>      NFSD: Add nfsd4_send_cb_offload()
>      NFSD: Move copy offload callback arguments into a separate structure
>      NFSD: Increase NFSD_MAX_OPS_PER_COMPOUND
>      NFSD: Protect against send buffer overflow in NFSv2 READDIR
>      NFSD: Protect against send buffer overflow in NFSv3 READDIR
>      NFSD: Protect against send buffer overflow in NFSv2 READ
>      NFSD: Protect against send buffer overflow in NFSv3 READ
>      NFSD: Fix handling of oversized NFSv4 COMPOUND requests
>      NFSD: Add tracepoints to report NFSv4 callback completions
>      NFSD: Add a mechanism to wait for a DELEGRETURN
>      NFSD: Refactor nfsd_setattr()
>      NFSD: Make nfsd4_setattr() wait before returning NFS4ERR_DELAY
>      NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY
>      NFSD: Make nfsd4_remove() wait before returning NFS4ERR_DELAY
>      SUNRPC: Parametrize how much of argsize should be zeroed
>      NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing
>      NFSD: Refactor common code out of dirlist helpers
>      NFSD: Use xdr_inline_decode() to decode NFSv3 symlinks
>      NFSD: Clean up WRITE arg decoders
>      NFSD: Clean up nfs4svc_encode_compoundres()
>      NFSD: Remove "inline" directives on op_rsize_bop helpers
>      NFSD: Remove unused nfsd4_compoundargs::cachetype field
>      NFSD: Pack struct nfsd4_compoundres
>      NFSD: Rename the fields in copy_stateid_t
>      NFSD: Cap rsize_bop result based on send buffer size
>      NFSD: Fix reads with a non-zero offset that don't end on a page boundary
>      NFSD: Finish converting the NFSv2 GETACL result encoder
>      NFSD: Finish converting the NFSv3 GETACL result encoder
>      NFSD: Pass the target nfsd_file to nfsd_commit()
>      NFSD: Revert "NFSD: NFSv4 CLOSE should release an nfsd_file immediately"
>      NFSD: Add an NFSD_FILE_GC flag to enable nfsd_file garbage collection
>      NFSD: Flesh out a documenting comment for filecache.c
>      NFSD: Clean up nfs4_preprocess_stateid_op() call sites
>      NFSD: Trace stateids returned via DELEGRETURN
>      NFSD: Trace delegation revocations
>      NFSD: Use const pointers as parameters to fh_ helpers
>      NFSD: Update file_hashtbl() helpers
>      NFSD: Clean up nfsd4_init_file()
>      NFSD: Add a nfsd4_file_hash_remove() helper
>      NFSD: Clean up find_or_add_file()
>      NFSD: Refactor find_file()
>      NFSD: Use rhashtable for managing nfs4_file objects
>      NFSD: Fix licensing header in filecache.c
>      NFSD: Add an nfsd_file_fsync tracepoint
>      NFSD: Use only RQ_DROPME to signal the need to drop a reply
>      Revert "SUNRPC: Use RMW bitops in single-threaded hot paths"
>      NFSD: Use set_bit(RQ_DROPME)
>      NFSD: copy the whole verifier in nfsd_copy_write_verifier
>      NFSD: Protect against filesystem freezing
>      NFSD: Avoid calling OPDESC() with ops->opnum == OP_ILLEGAL
>      NFSD: Convert filecache to rhltable
>      NFSD: Add an nfsd4_encode_nfstime4() helper
>      nfsd: don't allow nfsd threads to be signalled.
>      Documentation: Add missing documentation for EXPORT_OP flags
> 
> Colin Ian King (4):
>      nfsd: remove redundant assignment to pointer 'this'
>      NFSD: Initialize pointer ni with NULL and not plain integer 0
>      nfsd: remove redundant assignment to variable len
>      NFSD: Remove redundant assignment to variable host_err
> 
> Dai Ngo (26):
>      NFSv4_2: SSC helper should use its own config.
>      NFSv4.2: Remove ifdef CONFIG_NFSD from NFSv4.2 client SSC code.
>      NFSD: delay unmount source's export after inter-server copy completed.
>      nfsd: fix kernel test robot warning in SSC code
>      fs/lock: documentation cleanup. Replace inode->i_lock with flc_lock.
>      NFSD: add courteous server support for thread with only delegation
>      NFSD: add support for share reservation conflict to courteous server
>      NFSD: move create/destroy of laundry_wq to init_nfsd and exit_nfsd
>      fs/lock: add helper locks_owner_has_blockers to check for blockers
>      fs/lock: add 2 callbacks to lock_manager_operations to resolve conflict
>      NFSD: add support for lock conflict to courteous server
>      NFSD: Show state of courtesy client in client info
>      NFSD: refactoring v4 specific code to a helper in nfs4state.c
>      NFSD: keep track of the number of v4 clients in the system
>      NFSD: limit the number of v4 clients to 1024 per 1GB of system memory
>      NFSD: keep track of the number of courtesy clients in the system
>      NFSD: add shrinker to reap courtesy clients on low memory condition
>      NFSD: refactoring courtesy_client_reaper to a generic low memory shrinker
>      NFSD: add support for sending CB_RECALL_ANY
>      NFSD: add delegation reaper to react to low memory condition
>      NFSD: register/unregister of nfsd-client shrinker at nfsd startup/shutdown time
>      NFSD: replace delayed_work with work_struct for nfsd_client_shrinker
>      NFSD: enhance inter-server copy cleanup
>      NFSD: fix leaked reference count of nfsd4_ssc_umount_item
>      NFSD: fix problems with cleanup on errors in nfsd4_copy
>      NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop
> 
> Dan Carpenter (1):
>      nfsd: fix double fget() bug in __write_ports_addfd()
> 
> Dave Wysochanski (1):
>      nfsd4: Expose the callback address and state of each NFS4 client
> 
> David Disseldorp (1):
>      exportfs: use pr_debug for unreachable debug statements
> 
> Eric W. Biederman (24):
>      exec: Don't open code get_close_on_exec
>      exec: Move unshare_files to fix posix file locking during exec
>      exec: Simplify unshare_files
>      exec: Remove reset_files_struct
>      kcmp: In kcmp_epoll_target use fget_task
>      bpf: In bpf_task_fd_query use fget_task
>      proc/fd: In proc_fd_link use fget_task
>      file: Rename __fcheck_files to files_lookup_fd_raw
>      file: Factor files_lookup_fd_locked out of fcheck_files
>      file: Replace fcheck_files with files_lookup_fd_rcu
>      file: Rename fcheck lookup_fd_rcu
>      file: Implement task_lookup_fd_rcu
>      proc/fd: In tid_fd_mode use task_lookup_fd_rcu
>      kcmp: In get_file_raw_ptr use task_lookup_fd_rcu
>      file: Implement task_lookup_next_fd_rcu
>      proc/fd: In proc_readfd_common use task_lookup_next_fd_rcu
>      proc/fd: In fdinfo seq_show don't use get_files_struct
>      file: Merge __fd_install into fd_install
>      file: In f_dupfd read RLIMIT_NOFILE once.
>      file: Merge __alloc_fd into alloc_fd
>      file: Rename __close_fd to close_fd and remove the files parameter
>      file: Replace ksys_close with close_fd
>      exit: Implement kthread_exit
>      exit: Rename module_put_and_exit to module_put_and_kthread_exit
> 
> Gabriel Krisman Bertazi (24):
>      fsnotify: Don't insert unmergeable events in hashtable
>      fanotify: Fold event size calculation to its own function
>      fanotify: Split fsid check from other fid mode checks
>      inotify: Don't force FS_IN_IGNORED
>      fsnotify: Add helper to detect overflow_event
>      fsnotify: Add wrapper around fsnotify_add_event
>      fsnotify: Retrieve super block from the data field
>      fsnotify: Protect fsnotify_handle_inode_event from no-inode events
>      fsnotify: Pass group argument to free_event
>      fanotify: Support null inode event in fanotify_dfid_inode
>      fanotify: Allow file handle encoding for unhashed events
>      fanotify: Encode empty file handle when no inode is provided
>      fanotify: Require fid_mode for any non-fd event
>      fsnotify: Support FS_ERROR event type
>      fanotify: Reserve UAPI bits for FAN_FS_ERROR
>      fanotify: Pre-allocate pool of error events
>      fanotify: Support enqueueing of error events
>      fanotify: Support merging of error events
>      fanotify: Wrap object_fh inline space in a creator macro
>      fanotify: Add helpers to decide whether to report FID/DFID
>      fanotify: WARN_ON against too large file handles
>      fanotify: Report fid info for file related file system errors
>      fanotify: Emit generic error info for error event
>      fanotify: Allow users to request FAN_FS_ERROR events
> 
> Gaosheng Cui (3):
>      nfsd: remove nfsd4_prepare_cb_recall() declaration
>      fsnotify: remove unused declaration
>      fanotify: Remove obsoleted fanotify_event_has_path()
> 
> Guobin Huang (1):
>      NFSD: Use DEFINE_SPINLOCK() for spinlock
> 
> Gustavo A. R. Silva (2):
>      UAPI: nfsfh.h: Replace one-element array with flexible-array member
>      nfsd: Fix fall-through warnings for Clang
> 
> Haowen Bai (1):
>      SUNRPC: Return true/false (not 1/0) from bool functions
> 
> Huang Guobin (1):
>      nfsd: Fix error return code in nfsd_file_cache_init()
> 
> J. Bruce Fields (41):
>      nfsd: only call inode_query_iversion in the I_VERSION case
>      nfsd: simplify nfsd4_change_info
>      nfsd: minor nfsd4_change_attribute cleanup
>      nfsd4: don't query change attribute in v2/v3 case
>      Revert "nfsd4: support change_attr_type attribute"
>      nfsd4: simplify process_lookup1
>      nfsd: simplify process_lock
>      nfsd: simplify nfsd_renew
>      nfsd: rename lookup_clientid->set_client
>      nfsd: refactor set_client
>      nfsd: find_cpntf_state cleanup
>      nfsd: remove unused set_client argument
>      nfsd: simplify nfsd4_check_open_reclaim
>      nfsd: cstate->session->se_client -> cstate->clp
>      nfs: use change attribute for NFS re-exports
>      nfsd: skip some unnecessary stats in the v4 case
>      nfsd: helper for laundromat expiry calculations
>      nfsd: COPY with length 0 should copy to end of file
>      nfsd: don't ignore high bits of copy count
>      nfsd: hash nfs4_files by inode number
>      nfsd: track filehandle aliasing in nfs4_files
>      nfsd: reshuffle some code
>      nfsd: grant read delegations to clients holding writes
>      nfsd: move some commit_metadata()s outside the inode lock
>      nfsd: move fsnotify on client creation outside spinlock
>      nfsd: rpc_peeraddr2str needs rcu lock
>      nfsd: fix NULL dereference in nfs3svc_encode_getaclres
>      nlm: minor nlm_lookup_file argument change
>      nlm: minor refactoring
>      lockd: update nlm_lookup_file reexport comment
>      Keep read and write fds with each nlm_file
>      nfs: don't atempt blocking locks on nfs reexports
>      lockd: don't attempt blocking locks on nfs reexports
>      nfs: don't allow reexport reclaims
>      nfsd: update create verifier comment
>      nfsd4: remove obselete comment
>      nfsd: improve stateid access bitmask documentation
>      nfs: block notification on fs with its own ->lock
>      nfsd: fix crash on COPY_NOTIFY with special stateid
>      lockd: fix server crash on reboot of client holding lock
>      lockd: fix failure to cleanup client locks
> 
> Jakob Koschel (1):
>      nfsd: fix using the correct variable for sizeof()
> 
> Jeff Layton (58):
>      nfsd: add a new EXPORT_OP_NOWCC flag to struct export_operations
>      nfsd: allow filesystems to opt out of subtree checking
>      nfsd: close cached files prior to a REMOVE or RENAME that would replace target
>      nfsd: Add errno mapping for EREMOTEIO
>      nfsd: Retry once in nfsd_open on an -EOPENSTALE return
>      lockd: set fl_owner when unlocking files
>      lockd: fix nlm_close_files
>      nfsd: eliminate the NFSD_FILE_BREAK_* flags
>      nfsd: silence extraneous printk on nfsd.ko insertion
>      NFSD: drop fh argument from alloc_init_deleg
>      NFSD: verify the opened dentry after setting a delegation
>      lockd: detect and reject lock arguments that overflow
>      nfsd: clean up mounted_on_fileid handling
>      nfsd: only fill out return pointer on success in nfsd4_lookup_stateid
>      nfsd: fix comments about spinlock handling with delegations
>      nfsd: make nfsd4_run_cb a bool return function
>      nfsd: extra checks when freeing delegation stateids
>      nfsd: fix nfsd_file_unhash_and_dispose
>      nfsd: rework hashtable handling in nfsd_do_file_acquire
>      nfsd: fix net-namespace logic in __nfsd_file_cache_purge
>      nfsd: fix use-after-free in nfsd_file_do_acquire tracepoint
>      nfsd: put the export reference in nfsd4_verify_deleg_dentry
>      filelock: add a new locks_inode_context accessor function
>      lockd: use locks_inode_context helper
>      nfsd: use locks_inode_context helper
>      nfsd: ignore requests to disable unsupported versions
>      nfsd: move nfserrno() to vfs.c
>      nfsd: allow disabling NFSv2 at compile time
>      nfsd: remove the pages_flushed statistic from filecache
>      nfsd: reorganize filecache.c
>      nfsd: fix up the filecache laundrette scheduling
>      nfsd: return error if nfs4_setacl fails
>      lockd: set missing fl_flags field when retrieving args
>      lockd: ensure we use the correct file descriptor when unlocking
>      lockd: fix file selection in nlmsvc_cancel_blocked
>      nfsd: rework refcounting in filecache
>      nfsd: fix handling of cached open files in nfsd4_open codepath
>      nfsd: don't free files unconditionally in __nfsd_file_cache_purge
>      nfsd: don't destroy global nfs4_file table in per-net shutdown
>      nfsd: allow nfsd_file_get to sanely handle a NULL pointer
>      nfsd: clean up potential nfsd_file refcount leaks in COPY codepath
>      nfsd: don't hand out delegation on setuid files being opened for write
>      nfsd: fix courtesy client with deny mode handling in nfs4_upgrade_open
>      nfsd: don't fsync nfsd_files on last close
>      lockd: set file_lock start and end when decoding nlm4 testargs
>      nfsd: don't replace page in rq_pages if it's a continuation of last page
>      nfsd: call op_release, even when op_func returns an error
>      nfsd: don't open-code clear_and_wake_up_bit
>      nfsd: NFSD_FILE_KEY_INODE only needs to find GC'ed entries
>      nfsd: simplify test_bit return in NFSD_FILE_KEY_FULL comparator
>      nfsd: don't kill nfsd_files because of lease break error
>      nfsd: add some comments to nfsd_file_do_acquire
>      nfsd: don't take/put an extra reference when putting a file
>      nfsd: update comment over __nfsd_file_cache_purge
>      nfsd: allow reaping files still under writeback
>      nfsd: simplify the delayed disposal list code
>      nfsd: make a copy of struct iattr before calling notify_change
>      nfsd: drop the nfsd_put helper
> 
> Jia He (2):
>      sysctl: introduce new proc handler proc_dobool
>      lockd: change the proc_handler for nsm_use_hostnames
> 
> Jiapeng Chong (2):
>      nfsd: remove unused function
>      NFSD: Fix inconsistent indenting
> 
> Jinpeng Cui (1):
>      NFSD: remove redundant variable status
> 
> Julian Schroeder (1):
>      nfsd: destroy percpu stats counters after reply cache shutdown
> 
> Kees Cook (1):
>      NFSD: Avoid clashing function prototypes
> 
> Matthew Bobrowski (5):
>      kernel/pid.c: remove static qualifier from pidfd_create()
>      kernel/pid.c: implement additional checks upon pidfd_create() parameters
>      fanotify: minor cosmetic adjustments to fid labels
>      fanotify: introduce a generic info record copying helper
>      fanotify: add pidfd support to the fanotify API
> 
> NeilBrown (48):
>      nfsd: report client confirmation status in "info" file
>      NFSD: remove vanity comments
>      NFSD: move filehandle format declarations out of "uapi".
>      NFSD: drop support for ancient filehandles
>      NFSD: simplify struct nfsfh
>      NFSD: handle errors better in write_ports_addfd()
>      SUNRPC: change svc_get() to return the svc.
>      SUNRPC/NFSD: clean up get/put functions.
>      SUNRPC: stop using ->sv_nrthreads as a refcount
>      nfsd: make nfsd_stats.th_cnt atomic_t
>      SUNRPC: use sv_lock to protect updates to sv_nrthreads.
>      NFSD: narrow nfsd_mutex protection in nfsd thread
>      NFSD: Make it possible to use svc_set_num_threads_sync
>      SUNRPC: discard svo_setup and rename svc_set_num_threads_sync()
>      NFSD: simplify locking for network notifier.
>      lockd: introduce nlmsvc_serv
>      lockd: simplify management of network status notifiers
>      lockd: move lockd_start_svc() call into lockd_create_svc()
>      lockd: move svc_exit_thread() into the thread
>      lockd: introduce lockd_put()
>      lockd: rename lockd_create_svc() to lockd_get()
>      SUNRPC: move the pool_map definitions (back) into svc.c
>      SUNRPC: always treat sv_nrpools==1 as "not pooled"
>      lockd: use svc_set_num_threads() for thread start and stop
>      NFS: switch the callback service back to non-pooled.
>      NFSD: simplify per-net file cache management
>      NFS: restore module put when manager exits.
>      NFSD: introduce struct nfsd_attrs
>      NFSD: set attributes when creating symlinks
>      NFSD: add security label to struct nfsd_attrs
>      NFSD: add posix ACLs to struct nfsd_attrs
>      NFSD: change nfsd_create()/nfsd_symlink() to unlock directory before returning.
>      NFSD: always drop directory lock in nfsd_unlink()
>      NFSD: only call fh_unlock() once in nfsd_link()
>      NFSD: reduce locking in nfsd_lookup()
>      NFSD: use explicit lock/unlock for directory ops
>      NFSD: use (un)lock_inode instead of fh_(un)lock for file operations
>      NFSD: discard fh_locked flag and fh_lock/fh_unlock
>      NFSD: fix regression with setting ACLs.
>      NFSD: drop fname and flen args from nfsd_create_locked()
>      lockd: drop inappropriate svc_get() from locked_get()
>      nfsd: Simplify code around svc_exit_thread() call in nfsd()
>      nfsd: separate nfsd_last_thread() from nfsd_put()
>      NFSD: fix possible oops when nfsd/pool_stats is closed.
>      nfsd: call nfsd_last_thread() before final nfsd_put()
>      nfsd: fix RELEASE_LOCKOWNER
>      nfsd: don't take fi_lock in nfsd_break_deleg_cb()
>      nfsd: don't call locks_release_private() twice concurrently
> 
> Olga Kornievskaia (2):
>      NFSD add vfs_fsync after async copy is done
>      NFSD enforce filehandle check for source file in COPY
> 
> Oliver Ford (1):
>      fs: inotify: Fix typo in inotify comment
> 
> Ondrej Valousek (1):
>      nfsd: Add support for the birth time attribute
> 
> Paul Menzel (1):
>      nfsd: Log client tracking type log message as info instead of warning
> 
> Peng Tao (1):
>      nfsd: map EBADF
> 
> Ricardo Ribalda (1):
>      nfsd: Fix typo "accesible"
> 
> Shakeel Butt (1):
>      inotify, memcg: account inotify instances to kmemcg
> 
> Tavian Barnes (1):
>      nfsd: Fix creation time serialization order
> 
> Tetsuo Handa (1):
>      NFSD: unregister shrinker when nfsd_init_net() fails
> 
> Tom Rix (1):
>      NFSD: A semicolon is not needed after a switch statement.
> 
> Trond Myklebust (11):
>      exportfs: Add a function to return the raw output from fh_to_dentry()
>      nfsd: Fix up nfsd to ensure that timeout errors don't result in ESTALE
>      nfsd: Set PF_LOCAL_THROTTLE on local filesystems only
>      nfsd: Record NFSv4 pre/post-op attributes as non-atomic
>      NFS: fix nfs_fetch_iversion()
>      nfsd: Fix a warning for nfsd_file_close_inode
>      nfsd: Add a tracepoint for errors in nfsd4_clone_file_range()
>      nfsd: Fix a write performance regression
>      nfsd: Clean up nfsd_file_put()
>      lockd: set other missing fields when unlocking files
>      nfsd: Fix a regression in nfsd_setattr()
> 
> Vasily Averin (3):
>      nfsd: removed unused argument in nfsd_startup_generic()
>      nfsd4: add refcount for nfsd4_blocked_lock
>      fanotify: fix incorrect fmode_t casts
> 
> Waiman Long (1):
>      inotify: Increase default inotify.max_user_watches limit to 1048576
> 
> Wei Yongjun (1):
>      NFSD: Fix error return code in nfsd4_interssc_connect()
> 
> Wolfram Sang (2):
>      NFSD: move from strlcpy with unused retval to strscpy
>      lockd: move from strlcpy with unused retval to strscpy
> 
> Xin Gao (1):
>      fsnotify: Fix comment typo
> 
> Xingyuan Mo (1):
>      NFSD: fix use-after-free in nfsd4_ssc_setup_dul()
> 
> Xiu Jianfeng (1):
>      NFSD: Use struct_size() helper in alloc_session()
> 
> Yang Li (1):
>      fanotify: remove variable set but not used
> 
> Yu Hsiang Huang (1):
>      nfsd: Prevent truncation of an unlinked inode from blocking access to its directory
> 
> Zhang Jiaming (1):
>      NFSD: Fix space and spelling mistake
> 
> Zhang Xiaoxu (2):
>      nfsd: Unregister the cld notifier when laundry_wq create failed
>      nfsd: Fix null-ptr-deref in nfsd_fill_super()
> 
> Zheng Yongjun (1):
>      fs/lockd: convert comma to semicolon
> 
> Documentation/filesystems/files.rst          |    8 +-
> Documentation/filesystems/locking.rst        |   10 +-
> Documentation/filesystems/nfs/exporting.rst  |   78 +++++
> arch/powerpc/platforms/cell/spufs/coredump.c |    2 +-
> crypto/algboss.c                             |    4 +-
> fs/Kconfig                                   |    6 +-
> fs/autofs/dev-ioctl.c                        |    5 +-
> fs/cachefiles/namei.c                        |    9 +-
> fs/cifs/connect.c                            |    2 +-
> fs/coredump.c                                |    5 +-
> fs/ecryptfs/inode.c                          |   10 +-
> fs/exec.c                                    |   29 +-
> fs/exportfs/expfs.c                          |   40 ++-
> fs/file.c                                    |  177 +++++------
> fs/init.c                                    |    6 +-
> fs/lockd/clnt4xdr.c                          |    9 +-
> fs/lockd/clntproc.c                          |    3 -
> fs/lockd/host.c                              |    4 +-
> fs/lockd/svc.c                               |  262 +++++++--------
> fs/lockd/svc4proc.c                          |   70 +++-
> fs/lockd/svclock.c                           |   67 ++--
> fs/lockd/svcproc.c                           |   62 +++-
> fs/lockd/svcsubs.c                           |  123 +++++---
> fs/lockd/svcxdr.h                            |  142 +++++++++
> fs/lockd/xdr.c                               |  448 +++++++++++++-------------
> fs/lockd/xdr4.c                              |  472 +++++++++++++--------------
> fs/locks.c                                   |  102 ++++--
> fs/namei.c                                   |   21 +-
> fs/nfs/blocklayout/blocklayout.c             |    2 +-
> fs/nfs/blocklayout/dev.c                     |    2 +-
> fs/nfs/callback.c                            |  111 ++-----
> fs/nfs/callback_xdr.c                        |   33 +-
> fs/nfs/dir.c                                 |    2 +-
> fs/nfs/export.c                              |   17 +
> fs/nfs/file.c                                |    3 +
> fs/nfs/filelayout/filelayout.c               |    4 +-
> fs/nfs/filelayout/filelayoutdev.c            |    2 +-
> fs/nfs/flexfilelayout/flexfilelayout.c       |    4 +-
> fs/nfs/flexfilelayout/flexfilelayoutdev.c    |    2 +-
> fs/nfs/nfs42xdr.c                            |    2 +-
> fs/nfs/nfs4state.c                           |    2 +-
> fs/nfs/nfs4xdr.c                             |    6 +-
> fs/nfs/pagelist.c                            |    3 -
> fs/nfs/super.c                               |    8 +
> fs/nfs/write.c                               |    3 -
> fs/nfs_common/Makefile                       |    2 +-
> fs/nfs_common/nfs_ssc.c                      |    2 -
> fs/nfs_common/nfsacl.c                       |  123 ++++++++
> fs/nfsd/Kconfig                              |   36 ++-
> fs/nfsd/Makefile                             |    8 +-
> fs/nfsd/acl.h                                |    6 +-
> fs/nfsd/blocklayout.c                        |    1 +
> fs/nfsd/blocklayoutxdr.c                     |    1 +
> fs/nfsd/cache.h                              |    2 +-
> fs/nfsd/export.c                             |   74 ++++-
> fs/nfsd/export.h                             |   16 +-
> fs/nfsd/filecache.c                          | 1229 ++++++++++++++++++++++++++++++++++++++++-------------------------------
> fs/nfsd/filecache.h                          |   23 +-
> fs/nfsd/flexfilelayout.c                     |    3 +-
> fs/nfsd/lockd.c                              |   10 +-
> fs/nfsd/netns.h                              |   63 ++--
> fs/nfsd/nfs2acl.c                            |  214 +++++--------
> fs/nfsd/nfs3acl.c                            |  140 ++++----
> fs/nfsd/nfs3proc.c                           |  396 +++++++++++++++--------
> fs/nfsd/nfs3xdr.c                            | 1763 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------
> fs/nfsd/nfs4acl.c                            |   45 +--
> fs/nfsd/nfs4callback.c                       |  168 +++++++---
> fs/nfsd/nfs4idmap.c                          |    9 +-
> fs/nfsd/nfs4layouts.c                        |    4 +-
> fs/nfsd/nfs4proc.c                           | 1111 ++++++++++++++++++++++++++++++++++++++++------------------------
> fs/nfsd/nfs4recover.c                        |   20 +-
> fs/nfsd/nfs4state.c                          | 1725 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
> fs/nfsd/nfs4xdr.c                            | 3763 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------
> fs/nfsd/nfscache.c                           |  115 ++++---
> fs/nfsd/nfsctl.c                             |  169 +++++-----
> fs/nfsd/nfsd.h                               |   50 ++-
> fs/nfsd/nfsfh.c                              |  291 +++++++++--------
> fs/nfsd/nfsfh.h                              |  179 +++++------
> fs/nfsd/nfsproc.c                            |  262 ++++++++-------
> fs/nfsd/nfssvc.c                             |  356 ++++++++++-----------
> fs/nfsd/nfsxdr.c                             |  834 +++++++++++++++++++++++++-----------------------
> fs/nfsd/state.h                              |   69 +++-
> fs/nfsd/stats.c                              |  126 +++++---
> fs/nfsd/stats.h                              |   96 ++++--
> fs/nfsd/trace.c                              |    1 +
> fs/nfsd/trace.h                              |  894 ++++++++++++++++++++++++++++++++++++++++++++++------
> fs/nfsd/vfs.c                                |  931 +++++++++++++++++++++++++++---------------------------
> fs/nfsd/vfs.h                                |   60 ++--
> fs/nfsd/xdr.h                                |   68 ++--
> fs/nfsd/xdr3.h                               |  116 ++++---
> fs/nfsd/xdr4.h                               |  127 ++++----
> fs/nfsd/xdr4cb.h                             |    6 +
> fs/notify/dnotify/dnotify.c                  |   17 +-
> fs/notify/fanotify/fanotify.c                |  487 +++++++++++++++++++++-------
> fs/notify/fanotify/fanotify.h                |  252 +++++++++++++--
> fs/notify/fanotify/fanotify_user.c           |  882 +++++++++++++++++++++++++++++++++++++++++----------
> fs/notify/fdinfo.c                           |   19 +-
> fs/notify/fsnotify.c                         |  183 ++++++-----
> fs/notify/fsnotify.h                         |   19 +-
> fs/notify/group.c                            |   38 ++-
> fs/notify/inotify/inotify.h                  |   11 +-
> fs/notify/inotify/inotify_fsnotify.c         |   12 +-
> fs/notify/inotify/inotify_user.c             |   87 +++--
> fs/notify/mark.c                             |  172 ++++++----
> fs/notify/notification.c                     |   78 ++---
> fs/open.c                                    |   49 ++-
> fs/overlayfs/overlayfs.h                     |    9 +-
> fs/proc/fd.c                                 |   48 +--
> fs/udf/file.c                                |    2 +-
> fs/verity/enable.c                           |    2 +-
> include/linux/dnotify.h                      |    2 +-
> include/linux/errno.h                        |    1 +
> include/linux/exportfs.h                     |   15 +
> include/linux/fanotify.h                     |   74 ++++-
> include/linux/fdtable.h                      |   37 ++-
> include/linux/fs.h                           |   54 +++-
> include/linux/fsnotify.h                     |   77 +++--
> include/linux/fsnotify_backend.h             |  372 ++++++++++++++++++----
> include/linux/iversion.h                     |   13 +
> include/linux/kallsyms.h                     |   17 +-
> include/linux/kthread.h                      |    1 +
> include/linux/lockd/bind.h                   |    3 +-
> include/linux/lockd/lockd.h                  |   17 +-
> include/linux/lockd/xdr.h                    |   35 +-
> include/linux/lockd/xdr4.h                   |   33 +-
> include/linux/module.h                       |   24 +-
> include/linux/nfs.h                          |    8 -
> include/linux/nfs4.h                         |   21 +-
> include/linux/nfs_ssc.h                      |   14 +
> include/linux/nfsacl.h                       |    6 +
> include/linux/pid.h                          |    1 +
> include/linux/sched/user.h                   |    3 -
> include/linux/sunrpc/msg_prot.h              |    3 -
> include/linux/sunrpc/svc.h                   |  151 +++++----
> include/linux/sunrpc/svc_rdma.h              |    4 +-
> include/linux/sunrpc/svc_xprt.h              |   16 +-
> include/linux/sunrpc/svcauth.h               |    4 +-
> include/linux/sunrpc/svcsock.h               |    7 +-
> include/linux/sunrpc/xdr.h                   |  153 ++++++++-
> include/linux/syscalls.h                     |   12 -
> include/linux/sysctl.h                       |    2 +
> include/linux/user_namespace.h               |    4 +
> include/trace/events/sunrpc.h                |   26 +-
> include/uapi/linux/fanotify.h                |   42 +++
> include/uapi/linux/nfs3.h                    |    6 +
> include/uapi/linux/nfsd/nfsfh.h              |  105 ------
> kernel/audit_fsnotify.c                      |    8 +-
> kernel/audit_tree.c                          |    2 +-
> kernel/audit_watch.c                         |    5 +-
> kernel/bpf/inode.c                           |    2 +-
> kernel/bpf/syscall.c                         |   20 +-
> kernel/bpf/task_iter.c                       |    2 +-
> kernel/fork.c                                |   12 +-
> kernel/kallsyms.c                            |    8 +-
> kernel/kcmp.c                                |   29 +-
> kernel/kthread.c                             |   23 +-
> kernel/livepatch/core.c                      |    7 +-
> kernel/module.c                              |   26 +-
> kernel/pid.c                                 |   15 +-
> kernel/sys.c                                 |    2 +-
> kernel/sysctl.c                              |   54 +++-
> kernel/trace/trace_kprobe.c                  |    4 +-
> kernel/ucount.c                              |    4 +
> mm/madvise.c                                 |    2 +-
> mm/memcontrol.c                              |    2 +-
> mm/mincore.c                                 |    2 +-
> net/bluetooth/bnep/core.c                    |    2 +-
> net/bluetooth/cmtp/core.c                    |    2 +-
> net/bluetooth/hidp/core.c                    |    2 +-
> net/sunrpc/auth_gss/gss_rpc_xdr.c            |    2 +-
> net/sunrpc/auth_gss/svcauth_gss.c            |   47 +--
> net/sunrpc/sched.c                           |    1 +
> net/sunrpc/svc.c                             |  314 +++++++++---------
> net/sunrpc/svc_xprt.c                        |  104 +++---
> net/sunrpc/svcauth.c                         |    8 +-
> net/sunrpc/svcauth_unix.c                    |   18 +-
> net/sunrpc/svcsock.c                         |   32 +-
> net/sunrpc/xdr.c                             |  112 +++++--
> net/sunrpc/xprtrdma/svc_rdma_backchannel.c   |    2 +-
> net/sunrpc/xprtrdma/svc_rdma_sendto.c        |   32 +-
> net/sunrpc/xprtrdma/svc_rdma_transport.c     |    2 +-
> net/unix/af_unix.c                           |    2 +-
> tools/objtool/check.c                        |    3 +-
> 183 files changed, 13910 insertions(+), 8823 deletions(-)
> create mode 100644 fs/lockd/svcxdr.h
> delete mode 100644 include/uapi/linux/nfsd/nfsfh.h
> 
> -- 
> Chuck Lever
> 

--
Chuck Lever
Greg KH June 18, 2024, 12:42 p.m. UTC | #2
On Mon, Jun 17, 2024 at 07:38:30PM +0000, Chuck Lever III wrote:
> Resend: Corrected email address for stable
> 
> 
> > Begin forwarded message:
> > 
> > From: Chuck Lever <chuck.lever@oracle.com>
> > Subject: [GIT PULL 5.10.y] NFSD filecache fixes
> > Date: June 17, 2024 at 3:30:59 PM EDT
> > To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
> > Cc: linux-nfs@vger.kernel.org, stable@tissot.1015granger.net
> > 
> > Hi Greg, Sasha-
> > 
> > Here is a backport of nearly every NFSD patch from v5.11 until
> > v6.3, plus subsequent fixes, onto LTS v5.10.219. This addresses
> > the many NFSD filecache-related scalability problems in v5.10's
> > NFSD. This also contains fixes for issues found in the v5.15
> > NFSD backport over the past several months.
> > 
> > I've run this kernel through the usual upstream CI testing for
> > NFSD, and it seems solid.
> > 
> > In lieu of sending an mbox containing all of these patches, here's
> > a pull request that gives you the co-ordinates for the full series
> > enabling you to handle the merge however you prefer.

Sasha queued these all up, and I've pushed out a -rc release with _just_
these commits in it, so that it is easier to test and track regressions
for :)

thanks,

greg k-h
Chuck Lever III June 18, 2024, 1:30 p.m. UTC | #3
> On Jun 18, 2024, at 8:42 AM, Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote:
> 
> On Mon, Jun 17, 2024 at 07:38:30PM +0000, Chuck Lever III wrote:
>> Resend: Corrected email address for stable
>> 
>> 
>>> Begin forwarded message:
>>> 
>>> From: Chuck Lever <chuck.lever@oracle.com>
>>> Subject: [GIT PULL 5.10.y] NFSD filecache fixes
>>> Date: June 17, 2024 at 3:30:59 PM EDT
>>> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
>>> Cc: linux-nfs@vger.kernel.org, stable@tissot.1015granger.net
>>> 
>>> Hi Greg, Sasha-
>>> 
>>> Here is a backport of nearly every NFSD patch from v5.11 until
>>> v6.3, plus subsequent fixes, onto LTS v5.10.219. This addresses
>>> the many NFSD filecache-related scalability problems in v5.10's
>>> NFSD. This also contains fixes for issues found in the v5.15
>>> NFSD backport over the past several months.
>>> 
>>> I've run this kernel through the usual upstream CI testing for
>>> NFSD, and it seems solid.
>>> 
>>> In lieu of sending an mbox containing all of these patches, here's
>>> a pull request that gives you the co-ordinates for the full series
>>> enabling you to handle the merge however you prefer.
> 
> Sasha queued these all up, and I've pushed out a -rc release with _just_
> these commits in it, so that it is easier to test and track regressions
> for :)

Awesome. Thank you both!


--
Chuck Lever