public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: bfields@fieldses.org (J. Bruce Fields)
To: Chuck Lever <chuck.lever@oracle.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH v1 00/42] Update NFSD XDR functions
Date: Thu, 7 Jan 2021 22:18:00 -0500	[thread overview]
Message-ID: <20210108031800.GA13604@fieldses.org> (raw)
In-Reply-To: <160986050640.5532.16498408936966394862.stgit@klimt.1015granger.net>

I haven't had a chance to review these, but thought I should mention I'm
seeing a failure in xfstests generic/465 that I don't *think* is
reproduceable before this series.  Unfortunately it's intermittent,
though, so I'm not certain yet.

--b.

On Tue, Jan 05, 2021 at 10:29:40AM -0500, Chuck Lever wrote:
> The long-term purpose is to convert the NFSD XDR encoder and decoder
> functions to use the struct xdr_stream API. This is a refactor and
> clean-up with few or no changes in behavior expected, but there are
> some long-term benefits:
> 
> - More robust input sanitization in the NFSD decoders.
> - Help make it possible to use common kernel library functions with
>   XDR stream APIs (for example, GSS-API).
> - Align the structure of the source code with the RFCs so it is
>   easier to learn, verify, and maintain our XDR implementation.
> - Removal of more than a hundred hidden dprintk() call sites.
> - Removal of as much explicit manipulation of pages as possible to
>   help make the eventual transition to xdr->bvecs smoother.
> 
> The current series focuses on NFSv2 and NFSv3 decoder changes. Please
> review and comment!
> 
> The full set of patches lives in a topic branch in my git repo:
> 
>  git://git.linux-nfs.org/projects/cel/cel-2.6.git nfsd-xdr_stream
> 
> 
> ---
> 
> Chuck Lever (42):
>       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
> 
> 
>  fs/nfs_common/nfsacl.c          |  52 +++
>  fs/nfsd/nfs2acl.c               |  62 ++--
>  fs/nfsd/nfs3acl.c               |  42 ++-
>  fs/nfsd/nfs3proc.c              |  71 +++--
>  fs/nfsd/nfs3xdr.c               | 538 ++++++++++++++++++--------------
>  fs/nfsd/nfsproc.c               |  74 +++--
>  fs/nfsd/nfssvc.c                |  34 --
>  fs/nfsd/nfsxdr.c                | 350 ++++++++++-----------
>  fs/nfsd/xdr.h                   |  12 +-
>  fs/nfsd/xdr3.h                  |  20 +-
>  include/linux/nfsacl.h          |   3 +
>  include/linux/sunrpc/msg_prot.h |   3 -
>  include/linux/sunrpc/xdr.h      |  13 +-
>  include/trace/events/sunrpc.h   |  15 +-
>  include/uapi/linux/nfs3.h       |   6 +
>  15 files changed, 680 insertions(+), 615 deletions(-)
> 
> --
> Chuck Lever

  parent reply	other threads:[~2021-01-08  3:18 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-05 15:29 [PATCH v1 00/42] Update NFSD XDR functions Chuck Lever
2021-01-05 15:29 ` [PATCH v1 01/42] SUNRPC: Make trace_svc_process() display the RPC procedure symbolically Chuck Lever
2021-01-05 15:29 ` [PATCH v1 02/42] SUNRPC: Display RPC procedure names instead of proc numbers Chuck Lever
2021-01-05 15:29 ` [PATCH v1 03/42] SUNRPC: Move definition of XDR_UNIT Chuck Lever
2021-01-05 15:30 ` [PATCH v1 04/42] NFSD: Update GETATTR3args decoder to use struct xdr_stream Chuck Lever
2021-01-05 15:30 ` [PATCH v1 05/42] NFSD: Update ACCESS3arg " Chuck Lever
2021-01-05 15:30 ` [PATCH v1 06/42] NFSD: Update READ3arg " Chuck Lever
2021-01-05 15:30 ` [PATCH v1 07/42] NFSD: Update WRITE3arg " Chuck Lever
2021-01-22 18:47   ` J. Bruce Fields
2021-01-22 18:55     ` Chuck Lever
2021-01-05 15:30 ` [PATCH v1 08/42] NFSD: Update READLINK3arg " Chuck Lever
2021-01-05 15:30 ` [PATCH v1 09/42] NFSD: Fix returned READDIR offset cookie Chuck Lever
2021-01-05 15:30 ` [PATCH v1 10/42] NFSD: Add helper to set up the pages where the dirlist is encoded Chuck Lever
2021-01-05 15:30 ` [PATCH v1 11/42] NFSD: Update READDIR3args decoders to use struct xdr_stream Chuck Lever
2021-01-05 15:30 ` [PATCH v1 12/42] NFSD: Update COMMIT3arg decoder " Chuck Lever
2021-01-05 15:30 ` [PATCH v1 13/42] NFSD: Update the NFSv3 DIROPargs " Chuck Lever
2021-01-05 15:30 ` [PATCH v1 14/42] NFSD: Update the RENAME3args " Chuck Lever
2021-01-05 15:30 ` [PATCH v1 15/42] NFSD: Update the LINK3args " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 16/42] NFSD: Update the SETATTR3args " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 17/42] NFSD: Update the CREATE3args " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 18/42] NFSD: Update the MKDIR3args " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 19/42] NFSD: Update the SYMLINK3args " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 20/42] NFSD: Update the MKNOD3args " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 21/42] NFSD: Update the NFSv2 GETATTR argument " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 22/42] NFSD: Update the NFSv2 READ " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 23/42] NFSD: Update the NFSv2 WRITE " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 24/42] NFSD: Update the NFSv2 READLINK " Chuck Lever
2021-01-05 15:31 ` [PATCH v1 25/42] NFSD: Add helper to set up the pages where the dirlist is encoded Chuck Lever
2021-01-05 15:31 ` [PATCH v1 26/42] NFSD: Update the NFSv2 READDIR argument decoder to use struct xdr_stream Chuck Lever
2021-01-05 15:32 ` [PATCH v1 27/42] NFSD: Update NFSv2 diropargs decoding " Chuck Lever
2021-01-05 15:32 ` [PATCH v1 28/42] NFSD: Update the NFSv2 RENAME argument decoder " Chuck Lever
2021-01-05 15:32 ` [PATCH v1 29/42] NFSD: Update the NFSv2 LINK " Chuck Lever
2021-01-05 15:32 ` [PATCH v1 30/42] NFSD: Update the NFSv2 SETATTR " Chuck Lever
2021-01-05 15:32 ` [PATCH v1 31/42] NFSD: Update the NFSv2 CREATE " Chuck Lever
2021-01-05 15:32 ` [PATCH v1 32/42] NFSD: Update the NFSv2 SYMLINK " Chuck Lever
2021-01-05 15:32 ` [PATCH v1 33/42] NFSD: Remove argument length checking in nfsd_dispatch() Chuck Lever
2021-01-05 15:32 ` [PATCH v1 34/42] NFSD: Update the NFSv2 GETACL argument decoder to use struct xdr_stream Chuck Lever
2021-01-05 15:32 ` [PATCH v1 35/42] NFSD: Add an xdr_stream-based decoder for NFSv2/3 ACLs Chuck Lever
2021-01-05 15:32 ` [PATCH v1 36/42] NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream Chuck Lever
2021-01-05 15:32 ` [PATCH v1 37/42] NFSD: Update the NFSv2 ACL GETATTR " Chuck Lever
2021-01-05 15:33 ` [PATCH v1 38/42] NFSD: Update the NFSv2 ACL ACCESS " Chuck Lever
2021-01-05 15:33 ` [PATCH v1 39/42] NFSD: Clean up after updating NFSv2 ACL decoders Chuck Lever
2021-01-05 15:33 ` [PATCH v1 40/42] NFSD: Update the NFSv3 GETACL argument decoder to use struct xdr_stream Chuck Lever
2021-01-05 15:33 ` [PATCH v1 41/42] NFSD: Update the NFSv2 SETACL " Chuck Lever
2021-01-05 15:33 ` [PATCH v1 42/42] NFSD: Clean up after updating NFSv3 ACL decoders Chuck Lever
2021-01-08  3:18 ` J. Bruce Fields [this message]
2021-01-08 15:50   ` [PATCH v1 00/42] Update NFSD XDR functions Chuck Lever
2021-01-08 15:52     ` Bruce Fields
2021-01-08 15:56       ` Chuck Lever
2021-01-08 16:01         ` Bruce Fields
2021-01-08 16:35           ` Trond Myklebust
2021-01-08 18:08             ` bfields
2021-01-08 22:54               ` Trond Myklebust
2021-01-09 16:43                 ` Chuck Lever
2021-01-22 19:58 ` J. Bruce Fields

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210108031800.GA13604@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox