From: Allison Collins <allison.henderson@oracle.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH v5 07/14] xfs: Factor out xfs_attr_leaf_addname helper
Date: Thu, 26 Dec 2019 10:04:00 -0700 [thread overview]
Message-ID: <32f47226-d8b7-6f9e-2244-8237a8b1db6e@oracle.com> (raw)
In-Reply-To: <20191224122254.GE18379@infradead.org>
On 12/24/19 5:22 AM, Christoph Hellwig wrote:
> On Wed, Dec 11, 2019 at 09:15:06PM -0700, Allison Collins wrote:
>> Factor out new helper function xfs_attr_leaf_try_add.
>> Because new delayed attribute routines cannot roll
>> transactions, we carve off the parts of
>> xfs_attr_leaf_addname that we can use. This will help
>> to reduce repetitive code later when we introduce
>> delayed attributes.
>
> I have a hard time relating the subject to what is happening here,
> maybe because the patch does too many things at once. One thing
> is plitting a xfs_attr_leaf_try_add from xfs_attr_leaf_addname, which
> seems pretty sensible, but then it also moves code from
> xfs_attr_node_addname into the only caller. That probably should be
> a separate patch with a proper description.
>
Sure, maybe it might help to look at it this way though: the goal of all
this refactoring is to get all the transactions up into the
xfs_attr_*_args routines. Once we have them pretty much corralled, we
replace them with a sort of state machine like mechanic. This produces
the "return EAGAIN for new a transaction" behavior that we need for the
.finish_item callback.
In this case, xfs_attr_leaf_addname is a subroutine with a transaction
in the middle. So we split it into two functions. Kind of like a top
half and bottom half, and then the transaction moves up. While I can
separate the split and the move into separate patches, it didnt really
feel to me like the transaction or the node logic really fit with either
of the helpers. They are supposed to be about leaves, not nodes. It's
not a big deal I suppose to split up the patches, but I thought doing so
creates a sort of transient patch with functions that have logic not
particularly appropriate for their scope. Thoughts?
Also, perhaps I need to remove the line in the commit header about
reducing repetitive code. It might be misleading you (apologies). This
is left over from an earlier version of the series where I tried to
avoid "monster function" by having two code paths: one for inline attrs
and a separate one for delayed attrs. It generated a lot of repetitive
code with subtle differences though, and i think folks preferred the
code paths to stay merged. The goal being to first establish what
"monster function" even looks like, and then simplify it into new
helpers from there.
This is admittedly a very difficult series to review. People need to
understand patches 1 - 12 to really understand what 13 and 14 are doing.
But really, 13 and 14 are kind of driving the rest of the series.
Like literally an entire patch fell out of the last set because of some
changes we made in the end of the series. I know 13 and 14 are the
hardest to look at, but they very much dictate what the lower patches
end up doing. So I encourage people to try and focus attention there
before loosing to much sanity on scaffolding. Certainty it all needs to
get reviewed of course, but it may help to make more efficient use of
peoples review time. :-)
Hope that helps! Thanks for looking at it!
Allison
next prev parent reply other threads:[~2019-12-26 17:04 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-12 4:14 [PATCH v5 00/14] xfs: Delay Ready Attributes Allison Collins
2019-12-12 4:15 ` [PATCH v5 01/14] xfs: Remove all strlen in all xfs_attr_* functions for attr names Allison Collins
2019-12-12 4:15 ` [PATCH v5 02/14] xfs: Replace attribute parameters with struct xfs_name Allison Collins
2019-12-13 13:07 ` Brian Foster
2019-12-14 6:57 ` Allison Collins
2019-12-12 4:15 ` [PATCH v5 03/14] xfs: Embed struct xfs_name in xfs_da_args Allison Collins
2019-12-12 4:15 ` [PATCH v5 04/14] xfs: Add xfs_has_attr and subroutines Allison Collins
2019-12-13 13:08 ` Brian Foster
2019-12-14 6:58 ` Allison Collins
2019-12-24 12:18 ` Christoph Hellwig
2019-12-25 4:21 ` Allison Collins
2020-01-21 22:30 ` Darrick J. Wong
2020-01-22 0:25 ` Allison Collins
2020-01-25 16:27 ` Allison Collins
2020-01-25 23:08 ` Christoph Hellwig
2020-01-26 4:03 ` Allison Collins
2019-12-12 4:15 ` [PATCH v5 05/14] xfs: Factor out new helper functions xfs_attr_rmtval_set Allison Collins
2019-12-24 12:14 ` Christoph Hellwig
2019-12-25 17:43 ` Allison Collins
2020-01-06 14:46 ` Brian Foster
2020-01-06 18:29 ` Allison Collins
2020-01-06 21:45 ` Darrick J. Wong
2020-01-06 23:33 ` Dave Chinner
2019-12-12 4:15 ` [PATCH v5 06/14] xfs: Factor up trans handling in xfs_attr3_leaf_flipflags Allison Collins
2019-12-24 12:16 ` Christoph Hellwig
2019-12-25 20:49 ` Allison Collins
2019-12-12 4:15 ` [PATCH v5 07/14] xfs: Factor out xfs_attr_leaf_addname helper Allison Collins
2019-12-13 14:15 ` Brian Foster
2019-12-14 6:58 ` Allison Collins
2019-12-24 12:22 ` Christoph Hellwig
2019-12-26 17:04 ` Allison Collins [this message]
2019-12-12 4:15 ` [PATCH v5 08/14] xfs: Factor up xfs_attr_try_sf_addname Allison Collins
2019-12-13 14:15 ` Brian Foster
2019-12-14 6:58 ` Allison Collins
2019-12-24 12:25 ` Christoph Hellwig
2019-12-27 3:23 ` Allison Collins
2019-12-12 4:15 ` [PATCH v5 09/14] xfs: Factor up trans roll from xfs_attr3_leaf_setflag Allison Collins
2019-12-24 12:26 ` Christoph Hellwig
2019-12-12 4:15 ` [PATCH v5 10/14] xfs: Factor out xfs_attr_rmtval_invalidate Allison Collins
2019-12-12 4:15 ` [PATCH v5 11/14] xfs: Factor up trans roll in xfs_attr3_leaf_clearflag Allison Collins
2019-12-24 12:28 ` Christoph Hellwig
2019-12-12 4:15 ` [PATCH v5 12/14] xfs: Check for -ENOATTR or -EEXIST Allison Collins
2019-12-13 14:16 ` Brian Foster
2019-12-14 7:56 ` Allison Collins
2019-12-12 4:15 ` [PATCH v5 13/14] xfs: Add delay ready attr remove routines Allison Collins
2019-12-13 17:30 ` Brian Foster
2019-12-14 19:21 ` Allison Collins
2019-12-24 12:30 ` Christoph Hellwig
2019-12-24 23:18 ` Allison Collins
2019-12-12 4:15 ` [PATCH v5 14/14] xfs: Add delay ready attr set routines Allison Collins
2019-12-24 12:02 ` [PATCH v5 00/14] xfs: Delay Ready Attributes Christoph Hellwig
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=32f47226-d8b7-6f9e-2244-8237a8b1db6e@oracle.com \
--to=allison.henderson@oracle.com \
--cc=hch@infradead.org \
--cc=linux-xfs@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;
as well as URLs for NNTP newsgroup(s).