All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Allison Collins <allison.henderson@oracle.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH v11 00/25] xfs: Delay Ready Attributes
Date: Fri, 24 Jul 2020 15:35:26 +1000	[thread overview]
Message-ID: <20200724053526.GP2005@dread.disaster.area> (raw)
In-Reply-To: <20200724034100.GN2005@dread.disaster.area>

On Fri, Jul 24, 2020 at 01:41:00PM +1000, Dave Chinner wrote:
> On Mon, Jul 20, 2020 at 05:15:41PM -0700, Allison Collins wrote:
> > Hi all,
> > 
> > This set is a subset of a larger series for delayed attributes. Which is a
> > subset of an even larger series, parent pointers. Delayed attributes allow
> > attribute operations (set and remove) to be logged and committed in the same
> > way that other delayed operations do. This allows more complex operations (like
> > parent pointers) to be broken up into multiple smaller transactions. To do
> > this, the existing attr operations must be modified to operate as either a
> > delayed operation or a inline operation since older filesystems will not be
> > able to use the new log entries.  This means that they cannot roll, commit, or
> > finish transactions.  Instead, they return -EAGAIN to allow the calling
> > function to handle the transaction. In this series, we focus on only the clean
> > up and refactoring needed to accomplish this. We will introduce delayed attrs
> > and parent pointers in a later set.
> > 
> > At the moment, I would like people to focus their review efforts on just this
> > "delay ready" subseries, as I think that is a more conservative use of peoples
> > review time.  I also think the set is a bit much to manage all at once, and we
> > need to get the infrastructure ironed out before we focus too much anything
> > that depends on it. But I do have the extended series for folks that want to
> > see the bigger picture of where this is going.
> > 
> > To help organize the set, I've arranged the patches to make sort of mini sets.
> > I thought it would help reviewers break down the reviewing some. For reviewing
> > purposes, the set could be broken up into 4 different phases:
> > 
> > Error code filtering (patches 1-2):
> > These two patches are all about finding and catching error codes that need to
> > be sent back up to user space before starting delayed operations.  Errors that
> > happen during a delayed operation are treated like internal errors that cause a
> > shutdown.  But we wouldnt want that for example: when the user tries to rename
> > a non existent attr.  So the idea is that we need to find all such conditions,
> > and take care of them before starting a delayed operation.
> >    xfs: Add xfs_has_attr and subroutines
> >    xfs: Check for -ENOATTR or -EEXIST
> > 
> > Move transactions upwards (patches 3-12): 
> > The goal of this subset is to try and move all the transaction specific code up
> > the call stack much as possible.  The idea being that once we get them to the
> > top, we can introduce the statemachine to handle the -EAGAIN logic where ever
> > the transactions used to be.
> >   xfs: Factor out new helper functions xfs_attr_rmtval_set
> >   xfs: Pull up trans handling in xfs_attr3_leaf_flipflags
> >   xfs: Split apart xfs_attr_leaf_addname
> >   xfs: Refactor xfs_attr_try_sf_addname
> >   xfs: Pull up trans roll from xfs_attr3_leaf_setflag
> >   xfs: Factor out xfs_attr_rmtval_invalidate
> >   xfs: Pull up trans roll in xfs_attr3_leaf_clearflag
> >   xfs: Refactor xfs_attr_rmtval_remove
> >   xfs: Pull up xfs_attr_rmtval_invalidate
> >   xfs: Add helper function xfs_attr_node_shrink
> > 
> > Modularizing and cleanups (patches 13-22):
> > Now that we have pulled the transactions up to where we need them, it's time to
> > start breaking down the top level functions into new subfunctions. The goal
> > being to work towards a top level function that deals mostly with the
> > statemachine, and helpers for those states
> >   xfs: Remove unneeded xfs_trans_roll_inode calls
> >   xfs: Remove xfs_trans_roll in xfs_attr_node_removename
> >   xfs: Add helpers xfs_attr_is_shortform and xfs_attr_set_shortform
> >   xfs: Add helper function xfs_attr_leaf_mark_incomplete
> >   xfs: Add remote block helper functions
> >   xfs: Add helper function xfs_attr_node_removename_setup
> >   xfs: Add helper function xfs_attr_node_removename_rmt
> >   xfs: Simplify xfs_attr_leaf_addname
> >   xfs: Simplify xfs_attr_node_addname
> >   xfs: Lift -ENOSPC handler from xfs_attr_leaf_addname
> 
> I'm happy to see everything up to here merged.

BTW, that translates as:

Acked-by: Dave Chinner <dchinner@redhat.com>

For the first 22 patches.

-Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2020-07-24  5:35 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-21  0:15 [PATCH v11 00/25] xfs: Delay Ready Attributes Allison Collins
2020-07-21  0:15 ` [PATCH v11 01/25] xfs: Add xfs_has_attr and subroutines Allison Collins
2020-07-21 23:26   ` Darrick J. Wong
2020-07-24  2:24     ` Dave Chinner
2020-07-25  2:49       ` Allison Collins
2020-07-21  0:15 ` [PATCH v11 02/25] xfs: Check for -ENOATTR or -EEXIST Allison Collins
2020-07-21  0:15 ` [PATCH v11 03/25] xfs: Factor out new helper functions xfs_attr_rmtval_set Allison Collins
2020-07-21  0:15 ` [PATCH v11 04/25] xfs: Pull up trans handling in xfs_attr3_leaf_flipflags Allison Collins
2020-07-21  0:15 ` [PATCH v11 05/25] xfs: Split apart xfs_attr_leaf_addname Allison Collins
2020-07-21 23:19   ` Darrick J. Wong
2020-07-25  0:07     ` Allison Collins
2020-07-21  0:15 ` [PATCH v11 06/25] xfs: Refactor xfs_attr_try_sf_addname Allison Collins
2020-07-21  0:15 ` [PATCH v11 07/25] xfs: Pull up trans roll from xfs_attr3_leaf_setflag Allison Collins
2020-07-21  0:15 ` [PATCH v11 08/25] xfs: Factor out xfs_attr_rmtval_invalidate Allison Collins
2020-07-21  0:15 ` [PATCH v11 09/25] xfs: Pull up trans roll in xfs_attr3_leaf_clearflag Allison Collins
2020-07-21  0:15 ` [PATCH v11 10/25] xfs: Refactor xfs_attr_rmtval_remove Allison Collins
2020-07-21 23:31   ` Darrick J. Wong
2020-07-22  0:24     ` Darrick J. Wong
2020-07-25  0:08       ` Allison Collins
2020-07-25  0:46         ` Darrick J. Wong
2020-07-25  0:07     ` Allison Collins
2020-07-21  0:15 ` [PATCH v11 11/25] xfs: Pull up xfs_attr_rmtval_invalidate Allison Collins
2020-07-21  0:15 ` [PATCH v11 12/25] xfs: Add helper function xfs_attr_node_shrink Allison Collins
2020-07-21  0:15 ` [PATCH v11 13/25] xfs: Remove unneeded xfs_trans_roll_inode calls Allison Collins
2020-07-21 23:34   ` Darrick J. Wong
2020-07-25  0:08     ` Allison Collins
2020-07-21  0:15 ` [PATCH v11 14/25] xfs: Remove xfs_trans_roll in xfs_attr_node_removename Allison Collins
2020-07-21 23:38   ` Darrick J. Wong
2020-07-25  0:08     ` Allison Collins
2020-07-21  0:15 ` [PATCH v11 15/25] xfs: Add helpers xfs_attr_is_shortform and xfs_attr_set_shortform Allison Collins
2020-07-21  0:15 ` [PATCH v11 16/25] xfs: Add helper function xfs_attr_leaf_mark_incomplete Allison Collins
2020-07-21  0:15 ` [PATCH v11 17/25] xfs: Add remote block helper functions Allison Collins
2020-07-21  0:15 ` [PATCH v11 18/25] xfs: Add helper function xfs_attr_node_removename_setup Allison Collins
2020-07-21  0:16 ` [PATCH v11 19/25] xfs: Add helper function xfs_attr_node_removename_rmt Allison Collins
2020-07-21  0:16 ` [PATCH v11 20/25] xfs: Simplify xfs_attr_leaf_addname Allison Collins
2020-07-21 23:39   ` Darrick J. Wong
2020-07-25  0:07     ` Allison Collins
2020-07-21  0:16 ` [PATCH v11 21/25] xfs: Simplify xfs_attr_node_addname Allison Collins
2020-07-21 23:41   ` Darrick J. Wong
2020-07-25  0:08     ` Allison Collins
2020-07-21  0:16 ` [PATCH v11 22/25] xfs: Lift -ENOSPC handler from xfs_attr_leaf_addname Allison Collins
2020-07-21  0:16 ` [PATCH v11 23/25] xfs: Add delay ready attr remove routines Allison Collins
2020-07-21  0:16 ` [PATCH v11 24/25] xfs: Add delay ready attr set routines Allison Collins
2020-07-21  0:16 ` [PATCH v11 25/25] xfs: Rename __xfs_attr_rmtval_remove Allison Collins
2020-07-24  3:41 ` [PATCH v11 00/25] xfs: Delay Ready Attributes Dave Chinner
2020-07-24  5:35   ` Dave Chinner [this message]
2020-07-25  2:50     ` Allison Collins
2020-07-25  2:49   ` Allison Collins

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=20200724053526.GP2005@dread.disaster.area \
    --to=david@fromorbit.com \
    --cc=allison.henderson@oracle.com \
    --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 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.