From: Jeff Layton <jlayton@kernel.org>
To: Chuck Lever <cel@kernel.org>, linux-nfs@vger.kernel.org
Cc: Chuck Lever <chuck.lever@oracle.com>
Subject: Re: [PATCH v1 00/52] Modernize nfsd4_encode_fattr()
Date: Fri, 22 Sep 2023 15:20:09 -0400 [thread overview]
Message-ID: <f789565ea0cbd74ba07da026c2e1907d759e598d.camel@kernel.org> (raw)
In-Reply-To: <169504501081.133720.4162400017732492854.stgit@manet.1015granger.net>
On Mon, 2023-09-18 at 09:56 -0400, Chuck Lever wrote:
> This series restructures the server's fattr4 encoder. It is largely
> a maintenance improvement (ie, only 2nd-order benefits). There are
> no new features or performance benefits, and I hope there will be no
> changes in behavior.
>
> The goals:
> * Better alignment with spec
> * Easier to read and audit
> * Less brittle
> * Some code de-duplication
>
> This series applies to v6.6-rc2. Minor adjustment will be needed to
> apply it to nfsd-next. I apologize for the number of patches, but
> each of them (with only a couple of exceptions) is small and
> mechanical, and therefore easily digested.
>
> A branch containing these patches is available in this repo:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git
>
> See the "nfsd4-encoder-overhaul" branch.
>
> ---
>
> Chuck Lever (52):
> NFSD: Add simple u32, u64, and bool encoders
> NFSD: Rename nfsd4_encode_bitmap()
> NFSD: Clean up nfsd4_encode_setattr()
> NFSD: Add struct nfsd4_fattr_args
> NFSD: Add nfsd4_encode_fattr4__true()
> NFSD: Add nfsd4_encode_fattr4__false()
> NFSD: Add nfsd4_encode_fattr4_supported_attrs()
> NFSD: Add nfsd4_encode_fattr4_type()
> NFSD: Add nfsd4_encode_fattr4_fh_expire_type()
> NFSD: Add nfsd4_encode_fattr4_change()
> NFSD: Add nfsd4_encode_fattr4_size()
> NFSD: Add nfsd4_encode_fattr4_fsid()
> NFSD: Add nfsd4_encode_fattr4_lease_time()
> NFSD: Add nfsd4_encode_fattr4_rdattr_error()
> NFSD: Add nfsd4_encode_fattr4_aclsupport()
> NFSD: Add nfsd4_encode_nfsace4()
> NFSD: Add nfsd4_encode_fattr4_acl()
> NFSD: Add nfsd4_encode_fattr4_filehandle()
> NFSD: Add nfsd4_encode_fattr4_fileid()
> NFSD: Add nfsd4_encode_fattr4_files_avail()
> NFSD: Add nfsd4_encode_fattr4_files_free()
> NFSD: Add nfsd4_encode_fattr4_files_total()
> NFSD: Add nfsd4_encode_fattr4_fs_locations()
> NFSD: Add nfsd4_encode_fattr4_maxfilesize()
> NFSD: Add nfsd4_encode_fattr4_maxlink()
> NFSD: Add nfsd4_encode_fattr4_maxname()
> NFSD: Add nfsd4_encode_fattr4_maxread()
> NFSD: Add nfsd4_encode_fattr4_maxwrite()
> NFSD: Add nfsd4_encode_fattr4_mode()
> NFSD: Add nfsd4_encode_fattr4_numlinks()
> NFSD: Add nfsd4_encode_fattr4_owner()
> NFSD: Add nfsd4_encode_fattr4_owner_group()
> NFSD: Add nfsd4_encode_fattr4_rawdev()
> NFSD: Add nfsd4_encode_fattr4_space_avail()
> NFSD: Add nfsd4_encode_fattr4_space_free()
> NFSD: Add nfsd4_encode_fattr4_space_total()
> NFSD: Add nfsd4_encode_fattr4_space_used()
> NFSD: Add nfsd4_encode_fattr4_time_access()
> NFSD: Add nfsd4_encode_fattr4_time_create()
> NFSD: Add nfsd4_encode_fattr4_time_delta()
> NFSD: Add nfsd4_encode_fattr4_time_metadata()
> NFSD: Add nfsd4_encode_fattr4_time_modify()
> NFSD: Add nfsd4_encode_fattr4_mounted_on_fileid()
> NFSD: Add nfsd4_encode_fattr4_fs_layout_types()
> NFSD: Add nfsd4_encode_fattr4_layout_types()
> NFSD: Add nfsd4_encode_fattr4_layout_blksize()
> NFSD: Add nfsd4_encode_fattr4_suppattr_exclcreat()
> NFSD: Add nfsd4_encode_fattr4_sec_label()
> NFSD: Add nfsd4_encode_fattr4_xattr_support()
> NFSD: Copy FATTR4 bit number definitions from RFCs
> NFSD: Use a bitmask loop to encode FATTR4 results
> NFSD: Rename nfsd4_encode_fattr()
>
>
> fs/nfsd/nfs4xdr.c | 1419 +++++++++++++++++++++-----------------
> fs/nfsd/nfsfh.c | 2 +-
> fs/nfsd/nfsfh.h | 3 +-
> fs/nfsd/xdr4.h | 119 ++++
> include/linux/iversion.h | 2 +-
> include/linux/nfs4.h | 260 +++++--
> 6 files changed, 1085 insertions(+), 720 deletions(-)
>
> --
> Chuck Lever
>
Large set, but the change is fairly mechanical overall, and the result
is much more readable.
Reviewed-by: Jeff Layton <jlayton@kernel.org>
prev parent reply other threads:[~2023-09-22 19:20 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-18 13:56 [PATCH v1 00/52] Modernize nfsd4_encode_fattr() Chuck Lever
2023-09-18 13:56 ` [PATCH v1 01/52] NFSD: Add simple u32, u64, and bool encoders Chuck Lever
2023-09-18 13:57 ` [PATCH v1 02/52] NFSD: Rename nfsd4_encode_bitmap() Chuck Lever
2023-09-18 13:57 ` [PATCH v1 03/52] NFSD: Clean up nfsd4_encode_setattr() Chuck Lever
2023-09-18 13:57 ` [PATCH v1 04/52] NFSD: Add struct nfsd4_fattr_args Chuck Lever
2023-09-18 13:57 ` [PATCH v1 05/52] NFSD: Add nfsd4_encode_fattr4__true() Chuck Lever
2023-09-18 13:57 ` [PATCH v1 06/52] NFSD: Add nfsd4_encode_fattr4__false() Chuck Lever
2023-09-18 13:57 ` [PATCH v1 07/52] NFSD: Add nfsd4_encode_fattr4_supported_attrs() Chuck Lever
2023-09-18 13:57 ` [PATCH v1 08/52] NFSD: Add nfsd4_encode_fattr4_type() Chuck Lever
2023-09-18 13:57 ` [PATCH v1 09/52] NFSD: Add nfsd4_encode_fattr4_fh_expire_type() Chuck Lever
2023-09-18 13:57 ` [PATCH v1 10/52] NFSD: Add nfsd4_encode_fattr4_change() Chuck Lever
2023-09-18 13:57 ` [PATCH v1 11/52] NFSD: Add nfsd4_encode_fattr4_size() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 12/52] NFSD: Add nfsd4_encode_fattr4_fsid() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 13/52] NFSD: Add nfsd4_encode_fattr4_lease_time() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 14/52] NFSD: Add nfsd4_encode_fattr4_rdattr_error() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 15/52] NFSD: Add nfsd4_encode_fattr4_aclsupport() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 16/52] NFSD: Add nfsd4_encode_nfsace4() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 17/52] NFSD: Add nfsd4_encode_fattr4_acl() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 18/52] NFSD: Add nfsd4_encode_fattr4_filehandle() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 19/52] NFSD: Add nfsd4_encode_fattr4_fileid() Chuck Lever
2023-09-18 13:58 ` [PATCH v1 20/52] NFSD: Add nfsd4_encode_fattr4_files_avail() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 21/52] NFSD: Add nfsd4_encode_fattr4_files_free() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 22/52] NFSD: Add nfsd4_encode_fattr4_files_total() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 23/52] NFSD: Add nfsd4_encode_fattr4_fs_locations() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 24/52] NFSD: Add nfsd4_encode_fattr4_maxfilesize() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 25/52] NFSD: Add nfsd4_encode_fattr4_maxlink() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 26/52] NFSD: Add nfsd4_encode_fattr4_maxname() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 27/52] NFSD: Add nfsd4_encode_fattr4_maxread() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 28/52] NFSD: Add nfsd4_encode_fattr4_maxwrite() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 29/52] NFSD: Add nfsd4_encode_fattr4_mode() Chuck Lever
2023-09-18 13:59 ` [PATCH v1 30/52] NFSD: Add nfsd4_encode_fattr4_numlinks() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 31/52] NFSD: Add nfsd4_encode_fattr4_owner() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 32/52] NFSD: Add nfsd4_encode_fattr4_owner_group() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 33/52] NFSD: Add nfsd4_encode_fattr4_rawdev() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 34/52] NFSD: Add nfsd4_encode_fattr4_space_avail() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 35/52] NFSD: Add nfsd4_encode_fattr4_space_free() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 36/52] NFSD: Add nfsd4_encode_fattr4_space_total() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 37/52] NFSD: Add nfsd4_encode_fattr4_space_used() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 38/52] NFSD: Add nfsd4_encode_fattr4_time_access() Chuck Lever
2023-09-18 14:00 ` [PATCH v1 39/52] NFSD: Add nfsd4_encode_fattr4_time_create() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 40/52] NFSD: Add nfsd4_encode_fattr4_time_delta() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 41/52] NFSD: Add nfsd4_encode_fattr4_time_metadata() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 42/52] NFSD: Add nfsd4_encode_fattr4_time_modify() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 43/52] NFSD: Add nfsd4_encode_fattr4_mounted_on_fileid() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 44/52] NFSD: Add nfsd4_encode_fattr4_fs_layout_types() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 45/52] NFSD: Add nfsd4_encode_fattr4_layout_types() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 46/52] NFSD: Add nfsd4_encode_fattr4_layout_blksize() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 47/52] NFSD: Add nfsd4_encode_fattr4_suppattr_exclcreat() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 48/52] NFSD: Add nfsd4_encode_fattr4_sec_label() Chuck Lever
2023-09-18 14:01 ` [PATCH v1 49/52] NFSD: Add nfsd4_encode_fattr4_xattr_support() Chuck Lever
2023-09-18 14:02 ` [PATCH v1 50/52] NFSD: Copy FATTR4 bit number definitions from RFCs Chuck Lever
2023-09-18 14:02 ` [PATCH v1 51/52] NFSD: Use a bitmask loop to encode FATTR4 results Chuck Lever
2023-09-18 14:02 ` [PATCH v1 52/52] NFSD: Rename nfsd4_encode_fattr() Chuck Lever
2023-09-22 19:20 ` Jeff Layton [this message]
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=f789565ea0cbd74ba07da026c2e1907d759e598d.camel@kernel.org \
--to=jlayton@kernel.org \
--cc=cel@kernel.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