All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.