Linux Documentation
 help / color / mirror / Atom feed
From: Chuck Lever III <chuck.lever@oracle.com>
To: Jeff Layton <jlayton@kernel.org>
Cc: Neil Brown <neilb@suse.de>, Olga Kornievskaia <kolga@netapp.com>,
	Dai Ngo <dai.ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
	Trond Myklebust <trondmy@kernel.org>,
	Anna Schumaker <anna@kernel.org>,
	Olga Kornievskaia <okorniev@redhat.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
	Jonathan Corbet <corbet@lwn.net>, Tom Haynes <loghyr@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
	Linux FS Devel <linux-fsdevel@vger.kernel.org>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>
Subject: Re: [PATCH v3 03/13] nfsd: drop the ncf_cb_bmap field
Date: Wed, 4 Sep 2024 17:45:48 +0000	[thread overview]
Message-ID: <59DF9B68-4D5F-4E2D-A208-B8EE86D61A85@oracle.com> (raw)
In-Reply-To: <2ae8b2d1e2f22fba5acb88c3f12cef9716f28a62.camel@kernel.org>



> On Sep 4, 2024, at 1:39 PM, Jeff Layton <jlayton@kernel.org> wrote:
> 
> On Wed, 2024-09-04 at 17:28 +0000, Chuck Lever III wrote:
>> 
>>> On Sep 4, 2024, at 12:58 PM, Jeff Layton <jlayton@kernel.org> wrote:
>>> 
>>> On Wed, 2024-09-04 at 11:20 -0400, Chuck Lever wrote:
>>>> On Thu, Aug 29, 2024 at 09:26:41AM -0400, Jeff Layton wrote:
>>>>> This is always the same value, and in a later patch we're going to need
>>>>> to set bits in WORD2. We can simplify this code and save a little space
>>>>> in the delegation too. Just hardcode the bitmap in the callback encode
>>>>> function.
>>>>> 
>>>>> Signed-off-by: Jeff Layton <jlayton@kernel.org>
>>>> 
>>>> OK, lurching forward on this ;-)
>>>> 
>>>> - The first patch in v3 was applied to v6.11-rc.
>>>> - The second patch is now in nfsd-next.
>>>> - I've squashed the sixth and eighth patches into nfsd-next.
>>>> 
>>>> I'm replying to this patch because this one seems like a step
>>>> backwards to me: the bitmap values are implementation-dependent,
>>>> and this code will eventually be automatically generated based only
>>>> on the protocol, not the local implementation. IMO, architecturally,
>>>> bitmap values should be set at the proc layer, not in the encoders.
>>>> 
>>>> I've gone back and forth on whether to just go with it for now, but
>>>> I thought I'd mention it here to see if this change is truly
>>>> necessary for what follows. If it can't be replaced, I will suck it
>>>> up and fix it up later when this encoder is converted to an xdrgen-
>>>> manufactured one.
>>> 
>>> It's not truly necessary, but I don't see why it's important that we
>>> keep a record of the full-blown bitmap here. The ncf_cb_bmap field is a
>>> field in the delegation record, and it has to be carried around in
>>> perpetuity. This value is always set by the server and there are only a
>>> few legit bit combinations that can be set in it.
>>> 
>>> We certainly can keep this bitmap around, but as I said in the
>>> description, the delstid draft grows this bitmap to 3 words, and if we
>>> want to be a purists about storing a bitmap,
>> 
>> Fwiw, it isn't purism about storing the bitmap, it's
>> purism about adopting machine-generated XDR marshaling/
>> unmarshaling code. The patch adds non-marshaling logic
>> in the encoder. Either we'll have to add a way to handle
>> that in xdrgen eventually, or we'll have to exclude this
>> encoder from machine generation. (This is a ways down the
>> road, of course)
>> 
> 
> Understood. I'll note that this function works with a nfs4_delegation
> pointer too, which is not part of the protocol spec.
> 
> Once we move to autogenerated code, we will always have a hand-rolled
> "glue" layer that morphs our internal representation of these sorts of
> objects into a form that the xdrgen code requires. Storing this info as
> a flag in the delegation makes more sense to me, as the glue layer
> should massage that into the needed form.

My thought was the existing proc functions would do
the massaging for us. But that's an abstract,
architectural kind of thought. I'm just starting to
integrate this idea into lockd.


--
Chuck Lever



  reply	other threads:[~2024-09-04 17:46 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-29 13:26 [PATCH v3 00/13] nfsd: implement the "delstid" draft Jeff Layton
2024-08-29 13:26 ` [PATCH v3 01/13] nfsd: fix nfsd4_deleg_getattr_conflict in presence of third party lease Jeff Layton
2024-08-29 15:17   ` Chuck Lever
2024-08-30  6:01     ` NeilBrown
2024-08-30 13:54       ` Chuck Lever III
2024-08-29 13:26 ` [PATCH v3 02/13] nfsd: untangle code in nfsd4_deleg_getattr_conflict() Jeff Layton
2024-08-29 13:26 ` [PATCH v3 03/13] nfsd: drop the ncf_cb_bmap field Jeff Layton
2024-09-04 15:20   ` Chuck Lever
2024-09-04 16:58     ` Jeff Layton
2024-09-04 17:28       ` Chuck Lever III
2024-09-04 17:39         ` Jeff Layton
2024-09-04 17:45           ` Chuck Lever III [this message]
2024-09-05  1:44             ` NeilBrown
2024-08-29 13:26 ` [PATCH v3 04/13] nfsd: drop the nfsd4_fattr_args "size" field Jeff Layton
2024-08-29 13:26 ` [PATCH v3 05/13] nfsd: have nfsd4_deleg_getattr_conflict pass back write deleg pointer Jeff Layton
2024-08-29 13:26 ` [PATCH v3 06/13] nfsd: add pragma public to delegated timestamp types Jeff Layton
2024-08-29 15:19   ` Chuck Lever
2024-08-29 13:26 ` [PATCH v3 07/13] nfsd: fix reported change attr on a write delegation Jeff Layton
2024-08-29 13:26 ` [PATCH v3 08/13] nfs_common: make nfs4.h include generated nfs4_1.h Jeff Layton
2024-08-29 15:13   ` Chuck Lever
2024-08-29 15:28     ` Chuck Lever
2024-08-29 18:26     ` Jeff Layton
2024-08-29 19:02       ` Chuck Lever III
2024-08-30 14:48       ` Chuck Lever III
2024-08-30 15:44         ` Jeff Layton
2024-08-30 17:48           ` Jeff Layton
2024-08-29 13:26 ` [PATCH v3 09/13] nfsd: add support for FATTR4_OPEN_ARGUMENTS Jeff Layton
2024-08-29 13:26 ` [PATCH v3 10/13] nfsd: implement OPEN_ARGS_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION Jeff Layton
2024-08-29 13:26 ` [PATCH v3 11/13] fs: handle delegated timestamps in setattr_copy_mgtime Jeff Layton
2024-09-02 13:22   ` Jan Kara
2024-08-29 13:26 ` [PATCH v3 12/13] nfsd: add support for delegated timestamps Jeff Layton
2024-08-29 13:26 ` [PATCH v3 13/13] nfsd: handle delegated timestamps in SETATTR Jeff Layton

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=59DF9B68-4D5F-4E2D-A208-B8EE86D61A85@oracle.com \
    --to=chuck.lever@oracle.com \
    --cc=anna@kernel.org \
    --cc=brauner@kernel.org \
    --cc=corbet@lwn.net \
    --cc=dai.ngo@oracle.com \
    --cc=jack@suse.cz \
    --cc=jlayton@kernel.org \
    --cc=kolga@netapp.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=loghyr@gmail.com \
    --cc=neilb@suse.de \
    --cc=okorniev@redhat.com \
    --cc=tom@talpey.com \
    --cc=trondmy@kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /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