mbox series

[GIT,PULL] NFSD changes for the v6.12 merge window

Message ID ZvGGu59VMM18+31a@tissot.1015granger.net (mailing list archive)
State New
Headers show
Series [GIT,PULL] NFSD changes for the v6.12 merge window | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-6.12

Message

Chuck Lever III Sept. 23, 2024, 3:18 p.m. UTC
Hi Linus-

A quick note about the rather fresh commit dates in this PR:

We had some additional changes queued up that needed to be dropped
because their defect rate was not going down as fast as I would like
prior to -rc1, especially considering maintainer travel plans. Those
changes will be rescheduled for v6.13.

The commits included here have been in linux-next for weeks and pass
our NFSD CI tests.

--- cut here ---

The following changes since commit 431c1646e1f86b949fa3685efc50b660a364c2b6:

  Linux 6.11-rc6 (2024-09-01 19:46:02 +1200)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-6.12

for you to fetch changes up to 509abfc7a0ba66afa648e8216306acdc55ec54ed:

  xdrgen: Prevent reordering of encoder and decoder functions (2024-09-20 19:31:41 -0400)

----------------------------------------------------------------
NFSD 6.12 Release Notes

Notable features of this release include:

- Pre-requisites for automatically determining the RPC server thread
  count
- Clean-up and preparation for supporting LOCALIO, which will be
  merged via the NFS client tree
- Enhancements and fixes to NFSv4.2 COPY offload
- A new Python-based tool for generating kernel SunRPC XDR encoding
  and decoding functions, added as an aid for prototyping features
  in protocols based on the Linux kernel's SunRPC implementation.

As always I am grateful to the NFSD contributors, reviewers,
testers, and bug reporters who participated during this cycle.

----------------------------------------------------------------
Chen Hanxiao (1):
      NFS: trace: show TIMEDOUT instead of 0x6e

Chuck Lever (13):
      svcrdma: Handle device removal outside of the CM event handler
      NFSD: Fix NFSv4's PUTPUBFH operation
      .mailmap: Add an entry for my work email address
      NFSD: Async COPY result needs to return a write verifier
      NFSD: Limit the number of concurrent async COPY operations
      NFSD: Display copy stateids with conventional print formatting
      NFSD: Record the callback stateid in copy tracepoints
      NFSD: Clean up extra whitespace in trace_nfsd_copy_done
      NFSD: Wrap async copy operations with trace points
      tools: Add xdrgen
      xdrgen: Fix return code checking in built-in XDR decoders
      xdrgen: typedefs should use the built-in string and opaque functions
      xdrgen: Prevent reordering of encoder and decoder functions

Guoqing Jiang (1):
      nfsd: call cache_put if xdr_reserve_space returns NULL

Hongbo Li (1):
      nfsd: use LIST_HEAD() to simplify code

Jeff Layton (7):
      nfsd: remove unneeded EEXIST error check in nfsd_do_file_acquire
      nfsd: fix refcount leak when file is unhashed after being found
      nfsd: count nfsd_file allocations
      nfsd: add more info to WARN_ON_ONCE on failed callbacks
      nfsd: track the main opcode for callbacks
      nfsd: add more nfsd_cb tracepoints
      nfsd: fix initial getattr on write delegation

Li Lingfeng (5):
      NFSD: remove redundant assignment operation
      nfsd: map the EBADMSG to nfserr_io to avoid warning
      nfsd: remove unused parameter of nfsd_file_mark_find_or_create
      nfsd: fix some spelling errors in comments
      nfsd: return -EINVAL when namelen is 0

Mark Grimes (1):
      nfsd: Add quotes to client info 'callback address'

NeilBrown (22):
      nfsd: don't EXPORT_SYMBOL nfsd4_ssc_init_umount_work()
      lockd: discard nlmsvc_timeout
      SUNRPC: make various functions static, or not exported.
      nfsd: move nfsd_pool_stats_open into nfsctl.c
      nfsd: don't allocate the versions array.
      sunrpc: document locking rules for svc_exit_thread()
      sunrpc: change sp_nrthreads from atomic_t to unsigned int.
      sunrpc: don't take ->sv_lock when updating ->sv_nrthreads.
      sunrpc: merge svc_rqst_alloc() into svc_prepare_thread()
      sunrpc: allow svc threads to fail initialisation cleanly
      nfsd: Don't pass all of rqst into rqst_exp_find()
      nfsd: Pass 'cred' instead of 'rqstp' to some functions.
      nfsd: use nfsd_v4client() in nfsd_breaker_owns_lease()
      nfsd: further centralize protocol version checks.
      nfsd: move V4ROOT version check to nfsd_set_fh_dentry()
      nfsd: Move error code mapping to per-version proc code.
      nfsd: be more systematic about selecting error codes for internal use.
      nfsd: move error choice for incorrect object types to version-specific code.
      nfsd: use clear_and_wake_up_bit()
      nfsd: avoid races with wake_up_var()
      nfsd: untangle code in nfsd4_deleg_getattr_conflict()
      nfsd: fix delegation_blocked() to block correctly for at least 30 seconds

Sagi Grimberg (1):
      nfsd: don't assume copy notify when preprocessing the stateid

Scott Mayhew (1):
      nfsd: enforce upper limit for namelen in __cld_pipe_inprogress_downcall()

Thorsten Blum (1):
      NFSD: Annotate struct pnfs_block_deviceaddr with __counted_by()

Yan Zhen (1):
      sunrpc: xprtrdma: Use ERR_CAST() to return

Youzhong Yang (2):
      nfsd: add list_head nf_gc to struct nfsd_file
      nfsd: use system_unbound_wq for nfsd_file_gc_worker()

 .mailmap                                                                          |   3 +
 fs/lockd/host.c                                                                   |   2 +-
 fs/lockd/svc.c                                                                    |   9 +-
 fs/nfs/callback.c                                                                 |   2 +
 fs/nfsd/auth.c                                                                    |  14 +-
 fs/nfsd/auth.h                                                                    |   2 +-
 fs/nfsd/blocklayout.c                                                             |   6 +-
 fs/nfsd/blocklayoutxdr.h                                                          |   2 +-
 fs/nfsd/cache.h                                                                   |   2 +-
 fs/nfsd/export.c                                                                  |  37 ++--
 fs/nfsd/export.h                                                                  |   7 +-
 fs/nfsd/filecache.c                                                               |  36 ++--
 fs/nfsd/filecache.h                                                               |   1 +
 fs/nfsd/netns.h                                                                   |   7 +-
 fs/nfsd/nfs3proc.c                                                                |  44 +++++
 fs/nfsd/nfs4callback.c                                                            |   8 +-
 fs/nfsd/nfs4idmap.c                                                               |  13 +-
 fs/nfsd/nfs4layouts.c                                                             |   1 +
 fs/nfsd/nfs4proc.c                                                                |  71 ++++----
 fs/nfsd/nfs4recover.c                                                             |  13 +-
 fs/nfsd/nfs4state.c                                                               | 225 ++++++++++++------------
 fs/nfsd/nfs4xdr.c                                                                 |  29 +++-
 fs/nfsd/nfsctl.c                                                                  |  19 +-
 fs/nfsd/nfsd.h                                                                    |  44 +++--
 fs/nfsd/nfsfh.c                                                                   |  58 +++----
 fs/nfsd/nfsfh.h                                                                   |   2 +
 fs/nfsd/nfsproc.c                                                                 |  49 +++++-
 fs/nfsd/nfssvc.c                                                                  | 126 +++-----------
 fs/nfsd/state.h                                                                   |   1 +
 fs/nfsd/trace.h                                                                   | 124 +++++++++++--
 fs/nfsd/vfs.c                                                                     |  45 +++--
 fs/nfsd/vfs.h                                                                     |   4 +-
 fs/nfsd/xdr4.h                                                                    |   1 +
 include/linux/lockd/lockd.h                                                       |   2 +-
 include/linux/nfs4.h                                                              |  17 +-
 include/linux/sunrpc/svc.h                                                        |  44 +++--
 include/linux/sunrpc/svc_rdma.h                                                   |   2 +
 include/linux/sunrpc/svcauth.h                                                    |   1 -
 include/linux/sunrpc/svcsock.h                                                    |   2 -
 include/linux/sunrpc/xdrgen/_builtins.h                                           | 243 ++++++++++++++++++++++++++
 include/linux/sunrpc/xdrgen/_defs.h                                               |  26 +++
 include/trace/events/rpcrdma.h                                                    |  23 +++
 include/trace/misc/nfs.h                                                          |   1 +
 net/sunrpc/sunrpc.h                                                               |   4 +
 net/sunrpc/svc.c                                                                  | 130 +++++++-------
 net/sunrpc/svc_xprt.c                                                             |   9 -
 net/sunrpc/svcauth.c                                                              |   1 -
 net/sunrpc/svcsock.c                                                              |   1 -
 net/sunrpc/xprtrdma/svc_rdma_transport.c                                          |  18 +-
 tools/net/sunrpc/xdrgen/.gitignore                                                |   2 +
 tools/net/sunrpc/xdrgen/README                                                    | 244 ++++++++++++++++++++++++++
 tools/net/sunrpc/xdrgen/__init__.py                                               |   2 +
 tools/net/sunrpc/xdrgen/generators/__init__.py                                    | 113 ++++++++++++
 tools/net/sunrpc/xdrgen/generators/constant.py                                    |  20 +++
 tools/net/sunrpc/xdrgen/generators/enum.py                                        |  44 +++++
 tools/net/sunrpc/xdrgen/generators/header_bottom.py                               |  33 ++++
 tools/net/sunrpc/xdrgen/generators/header_top.py                                  |  45 +++++
 tools/net/sunrpc/xdrgen/generators/pointer.py                                     | 272 +++++++++++++++++++++++++++++
 tools/net/sunrpc/xdrgen/generators/program.py                                     | 168 ++++++++++++++++++
 tools/net/sunrpc/xdrgen/generators/source_top.py                                  |  32 ++++
 tools/net/sunrpc/xdrgen/generators/struct.py                                      | 272 +++++++++++++++++++++++++++++
 tools/net/sunrpc/xdrgen/generators/typedef.py                                     | 255 +++++++++++++++++++++++++++
 tools/net/sunrpc/xdrgen/generators/union.py                                       | 243 ++++++++++++++++++++++++++
 tools/net/sunrpc/xdrgen/grammars/xdr.lark                                         | 119 +++++++++++++
 tools/net/sunrpc/xdrgen/subcmds/__init__.py                                       |   2 +
 tools/net/sunrpc/xdrgen/subcmds/declarations.py                                   |  76 ++++++++
 tools/net/sunrpc/xdrgen/subcmds/definitions.py                                    |  78 +++++++++
 tools/net/sunrpc/xdrgen/subcmds/lint.py                                           |  33 ++++
 tools/net/sunrpc/xdrgen/subcmds/source.py                                         | 118 +++++++++++++
 tools/net/sunrpc/xdrgen/templates/C/constants/definition.j2                       |   3 +
 tools/net/sunrpc/xdrgen/templates/C/enum/declaration/close.j2                     |   4 +
 tools/net/sunrpc/xdrgen/templates/C/enum/decoder/enum.j2                          |  19 ++
 tools/net/sunrpc/xdrgen/templates/C/enum/definition/close.j2                      |   2 +
 tools/net/sunrpc/xdrgen/templates/C/enum/definition/enumerator.j2                 |   2 +
 tools/net/sunrpc/xdrgen/templates/C/enum/definition/open.j2                       |   3 +
 tools/net/sunrpc/xdrgen/templates/C/enum/encoder/enum.j2                          |  14 ++
 tools/net/sunrpc/xdrgen/templates/C/header_bottom/declaration/header.j2           |   3 +
 tools/net/sunrpc/xdrgen/templates/C/header_bottom/definition/header.j2            |   3 +
 tools/net/sunrpc/xdrgen/templates/C/header_top/declaration/header.j2              |  14 ++
 tools/net/sunrpc/xdrgen/templates/C/header_top/definition/header.j2               |  10 ++
 tools/net/sunrpc/xdrgen/templates/C/pointer/declaration/close.j2                  |   4 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/basic.j2                      |   6 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/close.j2                      |   3 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/fixed_length_array.j2         |   8 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/fixed_length_opaque.j2        |   6 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/open.j2                       |  22 +++
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/optional_data.j2              |   6 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2      |  13 ++
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_opaque.j2     |   6 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_string.j2     |   6 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/basic.j2                   |   5 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/close.j2                   |   2 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/fixed_length_array.j2      |   5 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/fixed_length_opaque.j2     |   5 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/open.j2                    |   6 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/optional_data.j2           |   5 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_array.j2   |   8 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_opaque.j2  |   5 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_string.j2  |   5 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/basic.j2                      |  10 ++
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/close.j2                      |   3 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/fixed_length_array.j2         |  12 ++
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/fixed_length_opaque.j2        |   6 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/open.j2                       |  20 +++
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/optional_data.j2              |   6 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_array.j2      |  15 ++
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_opaque.j2     |   8 +
 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_string.j2     |   8 +
 tools/net/sunrpc/xdrgen/templates/C/program/declaration/argument.j2               |   2 +
 tools/net/sunrpc/xdrgen/templates/C/program/declaration/result.j2                 |   2 +
 tools/net/sunrpc/xdrgen/templates/C/program/decoder/argument.j2                   |  21 +++
 tools/net/sunrpc/xdrgen/templates/C/program/decoder/result.j2                     |  22 +++
 tools/net/sunrpc/xdrgen/templates/C/program/definition/close.j2                   |   2 +
 tools/net/sunrpc/xdrgen/templates/C/program/definition/open.j2                    |   6 +
 tools/net/sunrpc/xdrgen/templates/C/program/definition/procedure.j2               |   2 +
 tools/net/sunrpc/xdrgen/templates/C/program/encoder/argument.j2                   |  16 ++
 tools/net/sunrpc/xdrgen/templates/C/program/encoder/result.j2                     |  21 +++
 tools/net/sunrpc/xdrgen/templates/C/source_top/client.j2                          |   8 +
 tools/net/sunrpc/xdrgen/templates/C/source_top/server.j2                          |   8 +
 tools/net/sunrpc/xdrgen/templates/C/struct/declaration/close.j2                   |   4 +
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/basic.j2                       |   6 +
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/close.j2                       |   3 +
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/fixed_length_array.j2          |   8 +
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/fixed_length_opaque.j2         |   6 +
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/open.j2                        |  12 ++
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/optional_data.j2               |   6 +
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2       |  13 ++
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_opaque.j2      |   6 +
 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_string.j2      |   6 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/basic.j2                    |   5 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/close.j2                    |   2 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/fixed_length_array.j2       |   5 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/fixed_length_opaque.j2      |   5 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/open.j2                     |   6 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/optional_data.j2            |   5 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_array.j2    |   8 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_opaque.j2   |   5 +
 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_string.j2   |   5 +
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/basic.j2                       |  10 ++
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/close.j2                       |   3 +
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/fixed_length_array.j2          |  12 ++
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/fixed_length_opaque.j2         |   6 +
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/open.j2                        |  12 ++
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/optional_data.j2               |   6 +
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_array.j2       |  15 ++
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_opaque.j2      |   8 +
 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_string.j2      |   8 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/basic.j2                  |   8 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/fixed_length_array.j2     |   4 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/fixed_length_opaque.j2    |   4 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_array.j2  |   4 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_opaque.j2 |   4 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_string.j2 |   4 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/basic.j2                      |  17 ++
 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/fixed_length_array.j2         |  25 +++
 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/fixed_length_opaque.j2        |  17 ++
 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_array.j2      |  26 +++
 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_opaque.j2     |  17 ++
 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_string.j2     |  17 ++
 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/basic.j2                   |   6 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/fixed_length_array.j2      |   6 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/fixed_length_opaque.j2     |   6 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_array.j2   |   9 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_opaque.j2  |   6 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_string.j2  |   6 +
 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/basic.j2                      |  21 +++
 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/fixed_length_array.j2         |  25 +++
 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/fixed_length_opaque.j2        |  17 ++
 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_array.j2      |  30 ++++
 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_opaque.j2     |  17 ++
 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_string.j2     |  17 ++
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/basic.j2                        |   6 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/break.j2                        |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/case_spec.j2                    |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/close.j2                        |   4 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/default_spec.j2                 |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/open.j2                         |  12 ++
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/optional_data.j2                |   6 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/switch_spec.j2                  |   7 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2        |  13 ++
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_opaque.j2       |   6 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_string.j2       |   6 +
 tools/net/sunrpc/xdrgen/templates/C/union/decoder/void.j2                         |   3 +
 tools/net/sunrpc/xdrgen/templates/C/union/definition/case_spec.j2                 |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/definition/close.j2                     |   8 +
 tools/net/sunrpc/xdrgen/templates/C/union/definition/default_spec.j2              |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/definition/open.j2                      |   6 +
 tools/net/sunrpc/xdrgen/templates/C/union/definition/switch_spec.j2               |   3 +
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/basic.j2                        |  10 ++
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/break.j2                        |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/case_spec.j2                    |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/close.j2                        |   4 +
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/default_spec.j2                 |   2 +
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/open.j2                         |  12 ++
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/switch_spec.j2                  |   7 +
 tools/net/sunrpc/xdrgen/templates/C/union/encoder/void.j2                         |   3 +
 tools/net/sunrpc/xdrgen/tests/test.x                                              |  36 ++++
 tools/net/sunrpc/xdrgen/xdr_ast.py                                                | 510 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tools/net/sunrpc/xdrgen/xdr_parse.py                                              |  36 ++++
 tools/net/sunrpc/xdrgen/xdrgen                                                    | 132 ++++++++++++++
 200 files changed, 4959 insertions(+), 499 deletions(-)
 create mode 100644 include/linux/sunrpc/xdrgen/_builtins.h
 create mode 100644 include/linux/sunrpc/xdrgen/_defs.h
 create mode 100644 tools/net/sunrpc/xdrgen/.gitignore
 create mode 100644 tools/net/sunrpc/xdrgen/README
 create mode 100644 tools/net/sunrpc/xdrgen/__init__.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/__init__.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/constant.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/enum.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/header_bottom.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/header_top.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/pointer.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/program.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/source_top.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/struct.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/typedef.py
 create mode 100644 tools/net/sunrpc/xdrgen/generators/union.py
 create mode 100644 tools/net/sunrpc/xdrgen/grammars/xdr.lark
 create mode 100644 tools/net/sunrpc/xdrgen/subcmds/__init__.py
 create mode 100644 tools/net/sunrpc/xdrgen/subcmds/declarations.py
 create mode 100644 tools/net/sunrpc/xdrgen/subcmds/definitions.py
 create mode 100644 tools/net/sunrpc/xdrgen/subcmds/lint.py
 create mode 100644 tools/net/sunrpc/xdrgen/subcmds/source.py
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/constants/definition.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/declaration/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/decoder/enum.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/definition/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/definition/enumerator.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/definition/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/encoder/enum.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/header_bottom/declaration/header.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/header_bottom/definition/header.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/header_top/declaration/header.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/header_top/definition/header.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/declaration/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/optional_data.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/optional_data.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/optional_data.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/declaration/argument.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/declaration/result.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/decoder/argument.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/decoder/result.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/definition/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/definition/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/definition/procedure.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/encoder/argument.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/encoder/result.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/source_top/client.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/source_top/server.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/declaration/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/optional_data.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/optional_data.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/optional_data.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/fixed_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/fixed_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/break.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/case_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/default_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/optional_data.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/switch_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_opaque.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_string.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/void.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/case_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/default_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/switch_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/basic.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/break.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/case_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/close.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/default_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/open.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/switch_spec.j2
 create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/void.j2
 create mode 100644 tools/net/sunrpc/xdrgen/tests/test.x
 create mode 100644 tools/net/sunrpc/xdrgen/xdr_ast.py
 create mode 100644 tools/net/sunrpc/xdrgen/xdr_parse.py
 create mode 100755 tools/net/sunrpc/xdrgen/xdrgen

Comments

pr-tracker-bot@kernel.org Sept. 23, 2024, 7:06 p.m. UTC | #1
The pull request you sent on Mon, 23 Sep 2024 11:18:19 -0400:

> https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-6.12

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/18ba6034468e7949a9e2c2cf28e2e123b4fe7a50

Thank you!