All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Allison Henderson <allison.henderson@oracle.com>
Cc: "linux-xfs@vger.kernel.org" <linux-xfs@vger.kernel.org>
Subject: Re: [RFC DELUGE v9r2d1] xfs: Parent Pointers
Date: Mon, 13 Mar 2023 19:20:35 -0700	[thread overview]
Message-ID: <20230314022035.GA11376@frogsfrogsfrogs> (raw)
In-Reply-To: <02febe3626d49e2d9529d800263de4f6a19da73b.camel@oracle.com>

On Wed, Mar 08, 2023 at 10:47:30PM +0000, Allison Henderson wrote:
> On Tue, 2023-02-28 at 17:24 -0800, Darrick J. Wong wrote:
> > On Sat, Feb 25, 2023 at 07:34:14AM +0000, Allison Henderson wrote:
> > > On Thu, 2023-02-23 at 18:51 -0800, Darrick J. Wong wrote:
> > > > On Fri, Feb 17, 2023 at 08:02:29PM +0000, Allison Henderson
> > > > wrote:
> > > > > On Thu, 2023-02-16 at 12:06 -0800, Darrick J. Wong wrote:
> > > > > > Hi everyone,
> > > > > > 
> > > > > > This deluge contains all of the additions to the parent
> > > > > > pointers
> > > > > > patchset that I've been working on for the past month.  The
> > > > > > kernel
> > > > > > and
> > > > > > xfsprogs patchsets are based on Allison's v9r2 tag from last
> > > > > > week;
> > > > > > the fstests patches are merely a part of my development
> > > > > > tree.  To
> > > > > > recap
> > > > 
> > > > <snip>
> > > > 
> > > > > Ermergersh, thats a lot!  Thanks for all the hard work.  I feel
> > > > > like if
> > > > > we don't come up with a plan for review though, people may not
> > > > > know
> > > > > where to start for these deluges!  Lets see... if we had to
> > > > > break
> > > > > this
> > > > > down, I think would divide it up between the existing parent
> > > > > pointers
> > > > > and the new pptr propositions for ofsck.
> > > > 
> > > > That's a good place to cleave.
> > > > 
> > > > > Then further divide it among
> > > > > kernel space, user space and test case.  If I had to pick only
> > > > > one
> > > > > of
> > > > > these to focus attention on, probably it should be new ofsck
> > > > > changes in
> > > > > the kernel space, since the rest of the deluge is really
> > > > > contingent
> > > > > on
> > > > > it. 
> > > > 
> > > > Yup.  Though you ought to read through the offline fsck patches
> > > > too.
> > > > Those take a very different approach to resolving parent
> > > > pointers. 
> > > > So
> > > > much of repair is based on nuking directories that I don't know
> > > > there's
> > > > a good way to rebuild them from parent pointers.
> > > Ok, will take a look
> > > 
> > > > 
> > > > A thought I had was that when we decide to zap a directory due to
> > > > problems in the directory blocks themselves, we could them
> > > > initiate a
> > > > scan of the parent pointers to try to find all the dirents we
> > > > can.  I
> > > > ran into problems with that approach because libxfs_iget
> > > > allocates
> > > > fresh
> > > > xfs_inode objects (instead of caching and sharing them like the
> > > > kernel
> > > > does) and that made it really hard to scan things in a coherent
> > > > manner.
> > > > 
> > > > > So now we've narrowed this down to a few subsets:
> > > > > 
> > > > > [PATCHSET v9r2d1 0/3] xfs: bug fixes for parent pointers
> > > > > [PATCHSET v9r2d1 0/4] xfs: rework the GETPARENTS ioctl,
> > > > 
> > > > If you read through these two patchsets and think they're ok,
> > > > then
> > > > either fold the fixes into the main series or tack them on the
> > > > end,
> > > > whichever is easier.  
> > > ok, I'll take a look, I'll probably tack the first 2 fixes since
> > > they
> > > dont seat into an existing patch in the set.
> > 
> > Ok.
> > 
> > > > If you tack them on the end, please add your
> > > > own SOB tags.
> > > 
> > > Sure?  I SOB'd the last 2 patches of the set in v3, and then you
> > > said
> > > to make it an RVB
> > 
> > Er... SOB, RVB, whichever tag(s) get us to a patch that has a signoff
> > and a review. :)
> > 
> > > > 
> > > > > [PATCHSET v9r2d1 00/23] xfs: online fsck support patches
> > > > > [PATCHSET v9r2d1 0/7] xfs: online repair of directories
> > > > > [PATCHSET v9r2d1 0/2] xfs: online checking of parent pointers
> > > > > [PATCHSET v9r2d1 0/3] xfs: online checking of parent pointers
> > > > > [PATCHSET v9r2d1 0/2] xfs: online checking of directories
> > > > 
> > > > The fsck functionality exists to prove the point that directory
> > > > repair
> > > > is /very/ awkward if we have to update p_diroffset.  As such,
> > > > they
> > > > focused on getting the main parts right ... but with the obvious
> > > > problem of making pptrs dependent on online fsck part 1 getting
> > > > merged.
> > > > 
> > > > Speaking of which -- can we merge online fsck for 6.4?  Please?
> > > > :)
> > > I'm fine with it as long as everyone else is?  I'm not sure who
> > > this is
> > > directed to.
> > 
> > 10% dchinner, 90% anyone we don't know about who might swoop in at
> > the
> > last minute and NAK it. ;)
> > 
> > > I admittedly haven't been able to work through all of it,
> > > but I don't think anyone has.  I don't know that exhaustive
> > > reviewing
> > > as a whole is particularly effective though.  Back when the
> > > combined
> > > set of "attr refactoring" + "larp" + "parent pointers" was
> > > particularly
> > > large, I used to just send out subsets that I thought were more
> > > reasonable for people digest.  That way people can look at the
> > > giant
> > > mega-set if they really gotta see it, but it kept the reviews more
> > > focused on a sort of smaller next step.
> > 
> > TBH every time I went to look at all that, I pulled your github
> > branch
> > and looked at the whole thing.  I paid more attention to whatever was
> > being reviewed on-list, obviously.  That said, after about the fifth
> > round of looking at a patchset I start feeling like I'm only going to
> > increase my knowledge of the code by using it to write something.  At
> > that point it's easier to convince me to merge it, or at least to
> > fling
> > it at fstestscloud.
> > 
> > > 
> > > > 
> > > > > [PATCHSET v9r2d1 0/5] xfs: encode parent pointer name in xattr
> > > > > key
> > > > 
> > > > Resolving the questions presented by this series is critical to
> > > > nailing
> > > > down the ondisk format and merging the feature.  But we'll get to
> > > > that
> > > > below.
> > > > 
> > > > > [PATCHSET v9r2d1 0/3] xfs: use flex arrays for
> > > > > XFS_IOC_GETPARENTS,
> > > > 
> > > > I'd like to know what you think about converting the ioctl
> > > > definition
> > > > to
> > > > flex arrays instead of the fixed size structs.  I'm not sure
> > > > where to
> > > > put this series, though.  If you decide that you want 'em, then
> > > > ideally
> > > > they'd be in xfs_fs.h from the introduction of
> > > > XFS_IOC_GETPARENTS,
> > > > but
> > > > I don't see any point in backporting them around "xfs: rework the
> > > > GETPARENTS ioctl".
> > > > 
> > > > (I would be ok if you rolled all of it into patch 25 from the
> > > > original
> > > > v9 set.)
> > > I'll take a look at it, I didnt put a whole lot of focus on the
> > > ioctl
> > > initially because the only thing that was using it at the time was
> > > the
> > > test case, and I wanted to keep attention more on the
> > > infrastructure.
> > 
> > <nod> I only started looking at it because I started pounding on it
> > with
> > xfs_scrub and noticed problems. :D
> Just an fyi, I thought the flex arrays are fine, but it had some
> conflicts moving to the bottom of the set, so I just ended up re-doing
> it directly in the existing parent pointers ioctl patch.  If possible,
> next time put the renames and clean ups after the functional changes,
> and that should help them move around a bit easier. Thanks!

Ok, I'll try to keep things cleaner when I rebase against v10.  TBH I
had decided that the ioctl changes were something I could put off until
after I'd written repair, so that's why they landed where they did.
For future reference, if there's a patchset of mine that you want to
merge and want me to reorder it to make your life easier, I'm open to
doing that.

Last week I got bogged down in 6.3 problems, and then discovered that my
new name-value xattr lookup code didn't quite work right with log
recovery, so it's only today that I (think) I'm ready to call my own
work on parent pointers done.

(I'm definitely going to have to figure out how to grind out all the
sha512 stuff that was in the v9r2d1 deluge.)

--D

> Allison
> 
> > 
> > > > 
> > > > > Of those, I think "xfs: encode parent pointer name in xattr
> > > > > key" is
> > > > > the
> > > > > only one that might impact other features since it's changeing
> > > > > the
> > > > > ondisk format from when we first started the effort years ago. 
> > > > > So
> > > > > probably that might be the best place for people to start since
> > > > > if
> > > > > this
> > > > > needs to change it might impact some of the other subsets in
> > > > > the
> > > > > deluge, or even features they are working on if they've based
> > > > > anything
> > > > > on the existing pptr set.
> > > > 
> > > > Bingo!
> > > > 
> > > > The biggest question about the format change is (IMHO) whether
> > > > we're
> > > > ok
> > > > with using a hash function for parent pointer names that don't
> > > > fit in
> > > > the attr key space, and which hash?
> > > > 
> > > > The sha2 family was designed to be collision resistant, but I
> > > > don't
> > > > anticipate that will last forever.  The hash is computed from
> > > > (the
> > > > full
> > > > name and the child generation number) when the dirent name is
> > > > longer
> > > > than 243 bytes.  The first 179 bytes of the dirent name are still
> > > > written in the parent pointer attr name.  An attacker would have
> > > > to
> > > > find
> > > > a collision that only changes the last 76 bytes of the dirent
> > > > name,
> > > > and
> > > > they'd have to know the generation number at runtime.
> > > > 
> > > > (Note: dirent names shorter than 243 bytes are written directly
> > > > into
> > > > the
> > > > parent pointer xattr name, no hashing required.)
> > > > 
> > > > I /think/ that's good enough, but I'm no cryptanalyst.  The
> > > > alternative
> > > > would be to change the xattr format so that the namelen field in
> > > > the
> > > > leaf structure to encode *only* the name component of the parent
> > > > pointer.  This would lead to a lot of special cased xattr code
> > > > and
> > > > probably a lot of bugs and other stupid problems, which is why I
> > > > didn't
> > > > take that route.
> > > > 
> > > > Thoughts?
> > > 
> > > Hmm, well, it sounds like a risk to be weighed.  It wouldn't happen
> > > very often.  It seems like it would be extremely rare.  But when it
> > > does it will likely be quite unpleasant.  
> > > 
> > > I think another question to ask would be how often does the parent
> > > pointer really need to be updated in a repair?  In most cases, an
> > > orphaned inode will likely be able to return to the dirofset from
> > > whence it came.  So an update may be unlikely.  Even more so would
> > > be
> > > the worst case of needing to update crazy amounts of parent
> > > pointers. 
> > > So  another option is to simply pick a cap and error out if the
> > > demand
> > > is too much.  Likely if this condition does arise, there's probably
> > > bigger issues going on.
> > > 
> > > While option A is substantially more rare than option B, you could
> > > probably pick either one and rarely encounter the error path. 
> > > While
> > > option A does have the advantage of being more memory conservative,
> > > it
> > > has the disadvantage of possibly being a really ugly sleeping bug. 
> > > While option B might error out when option A would have not, it
> > > would
> > > at least be clear as to why it did, and probably elude to the
> > > presence
> > > of bigger problems, such as an internal bug that we should probably
> > > go
> > > catch, or perhaps something external corrupting the fs image, which
> > > ofsck may not be able to solve anyway.  
> > > 
> > > FWIW I seem to recall running across the idea of using hashes as
> > > keys
> > > in other projects I've been on, and most of the time the rarity of
> > > the
> > > collision was considered an acceptable risk, though it's really
> > > about
> > > which risk really bothers you more.
> > 
> > I want to study sha2 hash collisions and/or how the xattr code
> > stumbles
> > over attrs with the same dahash first.  Dealing with colliding xattr
> > names might not be as painful for the parent pointer code as I'm
> > currently thinking.
> > 
> > > > 
> > > > > I feel like a 5 patch subset is a very reasonable thing to ask
> > > > > people
> > > > > to give their attention to.  That way they dont get lost in
> > > > > things
> > > > > like
> > > > > nits for optimizations that might not even matter if something
> > > > > it
> > > > > depends on changes.
> > > > > 
> > > > > For the most part I am ok with changeing the format as long as
> > > > > everyone
> > > > > is aware and in agreement so that we dont get caught up re-
> > > > > coding
> > > > > efforts that seem to have stuggled with disagreements now on
> > > > > the
> > > > > scale
> > > > > of decades.  Some of these patches were already very old by the
> > > > > time I
> > > > > got them!
> > > > 
> > > > Hheehhe.  Same here -- rmap was pretty old by the time I started
> > > > pushing
> > > > that for reals. :)
> > > > 
> > > > > On a side note, there are some preliminary patches of kernel
> > > > > side
> > > > > parent pointers that are either larp fixes or refactoring not
> > > > > sensitive
> > > > > to the proposed ofsck changes.  These patches a have been
> > > > > floating
> > > > > around for a while now, so if no one has any gripes, I think
> > > > > just
> > > > > merging those would help cut down the amount of rebaseing, user
> > > > > space
> > > > > porting and patch reviewing that goes on for every version. 
> > > > > (maybe
> > > > > the
> > > > > first 1 though 7 of the 28 patch set, if folks are ok with
> > > > > that)
> > > > 
> > > > I thought about doing that for 6.3, but I found enough bugs in
> > > > the
> > > > locking stuff (recall the first bugfix series) that I held back. 
> > > > I'm
> > > > not sure about the two "Increase <blah>" patches -- they'll bloat
> > > > kernel
> > > > structures without a real user for them.
> > > 
> > > I don't think the first 7 are order sensitive, we should be able to
> > > do
> > > just 1, 4, 5, 6 and 7.
> > 
> > OH.
> > 
> > > > 
> > > > <shrug>
> > > > 
> > > > > I think the shear size of some of these sets tend to work
> > > > > against
> > > > > them,
> > > > > as people likely cannot afford the time block they present on
> > > > > the
> > > > > surface.
> > > > 
> > > > Agreed.  At this point, I've worked through enough of the parent
> > > > pointers code to understand what's going on that I'm ok with
> > > > merging
> > > > it
> > > > once we settle the above question.
> > > > 
> > > > FWIW the whole series (kernel+xfsprogs+fstests) has been passing
> > > > my
> > > > nightly QA farm for a couple of weeks now despite my constant
> > > > hammering
> > > > on it, so I think the implementation is ready.
> > > > 
> > > > > So I think we would do well to find a way to introduce them
> > > > > at a reasonable pace and keep attention focused on the
> > > > > subsections
> > > > > that
> > > > > should require more than others, and hopefully keep thing
> > > > > moving in
> > > > > a
> > > > > progressive direction.
> > > > 
> > > > I disagree -- I want to merge online fsck part 1 so I can get
> > > > that
> > > > out
> > > > of my dev trees.  Then I want to focus on getting this over the
> > > > finish
> > > > line and merged.  But then I'm not known for incrementalism. :P
> > > Well, I notice people respond better to subsets in smaller doses
> > > though.  And then it gives the preliminary patches time to
> > > stabilize if
> > > people do find an issue.
> > 
> > <nod> I'll keep that in mind.
> > 
> > --D
> > 
> > > > 
> > > > --D
> > > > 
> > > > > Thx!
> > > > > Allison
> > > > > 
> > > 
> 

      reply	other threads:[~2023-03-14  2:21 UTC|newest]

Thread overview: 227+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-16 20:06 [RFC DELUGE v9r2d1] xfs: Parent Pointers Darrick J. Wong
2023-02-16 20:26 ` [PATCHSET v9r2d1 00/28] " Darrick J. Wong
2023-02-16 20:32   ` [PATCH 01/28] xfs: Add new name to attri/d Darrick J. Wong
2023-02-16 20:33   ` [PATCH 02/28] xfs: Increase XFS_DEFER_OPS_NR_INODES to 5 Darrick J. Wong
2023-02-16 20:33   ` [PATCH 03/28] xfs: Increase XFS_QM_TRANS_MAXDQS " Darrick J. Wong
2023-02-16 20:33   ` [PATCH 04/28] xfs: Hold inode locks in xfs_ialloc Darrick J. Wong
2023-02-16 20:33   ` [PATCH 05/28] xfs: Hold inode locks in xfs_trans_alloc_dir Darrick J. Wong
2023-02-16 20:34   ` [PATCH 06/28] xfs: Hold inode locks in xfs_rename Darrick J. Wong
2023-02-16 20:34   ` [PATCH 07/28] xfs: Expose init_xattrs in xfs_create_tmpfile Darrick J. Wong
2023-02-16 20:34   ` [PATCH 08/28] xfs: get directory offset when adding directory name Darrick J. Wong
2023-02-16 20:35   ` [PATCH 09/28] xfs: get directory offset when removing " Darrick J. Wong
2023-02-16 20:35   ` [PATCH 10/28] xfs: get directory offset when replacing a " Darrick J. Wong
2023-02-16 20:35   ` [PATCH 11/28] xfs: add parent pointer support to attribute code Darrick J. Wong
2023-02-16 20:35   ` [PATCH 12/28] xfs: define parent pointer xattr format Darrick J. Wong
2023-02-16 20:36   ` [PATCH 13/28] xfs: Add xfs_verify_pptr Darrick J. Wong
2023-02-16 20:36   ` [PATCH 14/28] xfs: extend transaction reservations for parent attributes Darrick J. Wong
2023-02-16 20:36   ` [PATCH 15/28] xfs: parent pointer attribute creation Darrick J. Wong
2023-02-16 20:36   ` [PATCH 16/28] xfs: add parent attributes to link Darrick J. Wong
2023-02-16 20:37   ` [PATCH 17/28] xfs: add parent attributes to symlink Darrick J. Wong
2023-02-16 20:37   ` [PATCH 18/28] xfs: remove parent pointers in unlink Darrick J. Wong
2023-02-16 20:37   ` [PATCH 19/28] xfs: Indent xfs_rename Darrick J. Wong
2023-02-16 20:37   ` [PATCH 20/28] xfs: Add parent pointers to rename Darrick J. Wong
2023-02-16 20:38   ` [PATCH 21/28] xfs: Add parent pointers to xfs_cross_rename Darrick J. Wong
2023-02-16 20:38   ` [PATCH 22/28] xfs: Add the parent pointer support to the superblock version 5 Darrick J. Wong
2023-02-16 20:38   ` [PATCH 23/28] xfs: Add helper function xfs_attr_list_context_init Darrick J. Wong
2023-02-16 20:38   ` [PATCH 24/28] xfs: Filter XFS_ATTR_PARENT for getfattr Darrick J. Wong
2023-02-16 20:39   ` [PATCH 25/28] xfs: Add parent pointer ioctl Darrick J. Wong
2023-02-16 20:39   ` [PATCH 26/28] xfs: fix unit conversion error in xfs_log_calc_max_attrsetm_res Darrick J. Wong
2023-02-16 20:39   ` [PATCH 27/28] xfs: drop compatibility minimum log size computations for reflink Darrick J. Wong
2023-02-16 20:39   ` [PATCH 28/28] xfs: add xfs_trans_mod_sb tracing Darrick J. Wong
2023-02-16 20:26 ` [PATCHSET v9r2d1 0/3] xfs: bug fixes for parent pointers Darrick J. Wong
2023-02-16 20:40   ` [PATCH 1/3] xfs: directory lookups should return diroffsets too Darrick J. Wong
2023-02-16 20:40   ` [PATCH 2/3] xfs: move/add parent pointer validators to xfs_parent Darrick J. Wong
2023-02-16 20:40   ` [PATCH 3/3] xfs: don't remove the attr fork when parent pointers are enabled Darrick J. Wong
2023-02-16 20:26 ` [PATCHSET v9r2d1 0/4] xfs: rework the GETPARENTS ioctl Darrick J. Wong
2023-02-16 20:40   ` [PATCH 1/4] xfs: fix multiple problems when doing getparents by handle Darrick J. Wong
2023-02-16 20:41   ` [PATCH 2/4] xfs: use kvalloc for the parent pointer info buffer Darrick J. Wong
2023-02-16 20:41   ` [PATCH 3/4] xfs: pass the attr value to put_listent when possible Darrick J. Wong
2023-02-16 20:41   ` [PATCH 4/4] xfs: replace the XFS_IOC_GETPARENTS backend Darrick J. Wong
2023-02-16 20:27 ` [PATCHSET v9r2d1 00/23] xfs: online fsck support patches Darrick J. Wong
2023-02-16 20:42   ` [PATCH 01/23] xfs: manage inode DONTCACHE status at irele time Darrick J. Wong
2023-02-16 20:42   ` [PATCH 02/23] xfs: make checking directory dotdot entries more reliable Darrick J. Wong
2023-02-16 20:42   ` [PATCH 03/23] xfs: xfs_iget in the directory scrubber needs to use UNTRUSTED Darrick J. Wong
2023-02-16 20:42   ` [PATCH 04/23] xfs: always check the existence of a dirent's child inode Darrick J. Wong
2023-02-16 20:43   ` [PATCH 05/23] xfs: remove the for_each_xbitmap_ helpers Darrick J. Wong
2023-02-16 20:43   ` [PATCH 06/23] xfs: drop the _safe behavior from the xbitmap foreach macro Darrick J. Wong
2023-02-16 20:43   ` [PATCH 07/23] xfs: convert xbitmap to interval tree Darrick J. Wong
2023-02-16 20:43   ` [PATCH 08/23] xfs: port xbitmap_test Darrick J. Wong
2023-02-16 20:44   ` [PATCH 09/23] xfs: ignore stale buffers when scanning the buffer cache Darrick J. Wong
2023-02-16 20:44   ` [PATCH 10/23] xfs: create a big array data structure Darrick J. Wong
2023-02-16 20:44   ` [PATCH 11/23] xfs: wrap ilock/iunlock operations on sc->ip Darrick J. Wong
2023-02-16 20:44   ` [PATCH 12/23] xfs: port scrub inode scan from djwong-dev Darrick J. Wong
2023-02-16 20:45   ` [PATCH 13/23] xfs: allow scrub to hook metadata updates in other writers Darrick J. Wong
2023-02-16 20:45   ` [PATCH 14/23] xfs: allow blocking notifier chains with filesystem hooks Darrick J. Wong
2023-02-16 20:45   ` [PATCH 15/23] xfs: streamline the directory iteration code for scrub Darrick J. Wong
2023-02-16 20:45   ` [PATCH 16/23] xfs: track file link count updates during live nlinks fsck Darrick J. Wong
2023-02-16 20:46   ` [PATCH 17/23] xfs: connect in-memory btrees to xfiles Darrick J. Wong
2023-02-16 20:46   ` [PATCH 18/23] xfs: create temporary files and directories for online repair Darrick J. Wong
2023-02-16 20:46   ` [PATCH 19/23] xfs: hide private inodes from bulkstat and handle functions Darrick J. Wong
2023-02-16 20:46   ` [PATCH 20/23] xfs: create a blob array data structure Darrick J. Wong
2023-02-16 20:47   ` [PATCH 21/23] xfs: repair extended attributes Darrick J. Wong
2023-02-16 20:47   ` [PATCH 22/23] xfs: online repair of directories Darrick J. Wong
2023-02-16 20:47   ` [PATCH 23/23] xfs: create an xattr iteration function for scrub Darrick J. Wong
2023-02-16 20:27 ` [PATCHSET v9r2d1 0/7] xfs: online repair of directories Darrick J. Wong
2023-02-16 20:48   ` [PATCH 1/7] xfs: pass directory offsets as part of the dirent hook data Darrick J. Wong
2023-02-16 20:48   ` [PATCH 2/7] xfs: pass diroffset back from xchk_dir_lookup Darrick J. Wong
2023-02-16 20:48   ` [PATCH 3/7] xfs: shorten parent pointer function names Darrick J. Wong
2023-02-16 20:48   ` [PATCH 4/7] xfs: rearrange bits of the parent pointer apis for fsck Darrick J. Wong
2023-02-16 20:49   ` [PATCH 5/7] xfs: reconstruct directories from parent pointers Darrick J. Wong
2023-02-16 20:49   ` [PATCH 6/7] xfs: add hooks to do directory updates Darrick J. Wong
2023-02-16 20:49   ` [PATCH 7/7] xfs: compare generated and existing dirents Darrick J. Wong
2023-02-16 20:27 ` [PATCHSET v9r2d1 0/2] xfs: online checking of parent pointers Darrick J. Wong
2023-02-16 20:49   ` [PATCH 1/2] xfs: scrub " Darrick J. Wong
2023-02-16 20:50   ` [PATCH 2/2] xfs: deferred scrub of " Darrick J. Wong
2023-02-16 20:27 ` [PATCHSET v9r2d1 0/3] xfs: online checking " Darrick J. Wong
2023-02-16 20:50   ` [PATCH 1/3] xfs: repair parent pointers by scanning directories Darrick J. Wong
2023-02-16 20:50   ` [PATCH 2/3] xfs: repair parent pointers with live scan hooks Darrick J. Wong
2023-02-16 20:50   ` [PATCH 3/3] xfs: compare generated and existing parent pointers Darrick J. Wong
2023-02-16 20:28 ` [PATCHSET v9r2d1 0/2] xfs: online checking of directories Darrick J. Wong
2023-02-16 20:51   ` [PATCH 1/2] xfs: check dirents have parent pointers Darrick J. Wong
2023-02-16 20:51   ` [PATCH 2/2] xfs: deferred scrub of dirents Darrick J. Wong
2023-02-16 20:28 ` [PATCHSET v9r2d1 0/5] xfs: encode parent pointer name in xattr key Darrick J. Wong
2023-02-16 20:51   ` [PATCH 1/5] xfs: load secure hash algorithm for parent pointers Darrick J. Wong
2023-02-16 20:51   ` [PATCH 2/5] xfs: replace parent pointer diroffset with sha512 hash of name Darrick J. Wong
2023-02-16 20:52   ` [PATCH 3/5] xfs: skip the sha512 namehash when possible Darrick J. Wong
2023-02-16 20:52   ` [PATCH 4/5] xfs: make the ondisk parent pointer record a flex array Darrick J. Wong
2023-02-16 20:52   ` [PATCH 5/5] xfs: use parent pointer xattr space more efficiently Darrick J. Wong
2023-02-18  8:12   ` [PATCHSET v9r2d1 0/5] xfs: encode parent pointer name in xattr key Amir Goldstein
2023-02-24  2:58     ` Darrick J. Wong
2023-03-03 16:43   ` Darrick J. Wong
2023-03-03 17:11   ` [PATCHSET v9r2d1.1 00/13] xfs: remove parent pointer hashing Darrick J. Wong
2023-03-03 17:11     ` [PATCH 01/13] xfs: make xfs_attr_set require XFS_DA_OP_REMOVE Darrick J. Wong
2023-03-03 17:11     ` [PATCH 02/13] xfs: allow xattr matching on value for local/sf attrs Darrick J. Wong
2023-03-03 17:11     ` [PATCH 03/13] xfs: preserve VLOOKUP in xfs_attr_set Darrick J. Wong
2023-03-03 17:11     ` [PATCH 04/13] xfs: log VLOOKUP xattr removal operations Darrick J. Wong
2023-03-03 17:11     ` [PATCH 05/13] xfs: log VLOOKUP xattr setting operations Darrick J. Wong
2023-03-03 17:11     ` [PATCH 06/13] xfs: refactor extracting attri ops from alfi_op_flags Darrick J. Wong
2023-03-03 17:11     ` [PATCH 07/13] xfs: overlay alfi_nname_len atop alfi_name_len for NVREPLACE Darrick J. Wong
2023-03-03 17:12     ` [PATCH 08/13] xfs: rename nname to newname Darrick J. Wong
2023-03-03 17:12     ` [PATCH 09/13] xfs: log VLOOKUP xattr nvreplace operations Darrick J. Wong
2023-03-03 17:12     ` [PATCH 10/13] xfs: log old xattr values for NVREPLACEXXX operations Darrick J. Wong
2023-03-03 17:12     ` [PATCH 11/13] xfs: use VLOOKUP mode to avoid hashing parent pointer names Darrick J. Wong
2023-03-03 17:12     ` [PATCH 12/13] xfs: turn NVREPLACEXXX into NVREPLACE Darrick J. Wong
2023-03-03 17:12     ` [PATCH 13/13] xfs: revert "load secure hash algorithm for parent pointers" Darrick J. Wong
2023-02-16 20:28 ` [PATCHSET v9r2d1 0/3] xfs: use flex arrays for XFS_IOC_GETPARENTS Darrick J. Wong
2023-02-16 20:52   ` [PATCH 1/3] xfs: rename xfs_pptr_info to xfs_getparents Darrick J. Wong
2023-02-16 20:53   ` [PATCH 2/3] xfs: rename xfs_parent_ptr Darrick J. Wong
2023-02-16 20:53   ` [PATCH 3/3] xfs: convert GETPARENTS structures to flex arrays Darrick J. Wong
2023-02-16 20:29 ` [PATCHSET v9r2d1 00/25] xfsprogs: Parent Pointers Darrick J. Wong
2023-02-16 20:53   ` [PATCH 01/25] xfsprogs: Fix default superblock attr bits Darrick J. Wong
2023-02-16 20:54   ` [PATCH 02/25] xfsprogs: Add new name to attri/d Darrick J. Wong
2023-02-16 20:54   ` [PATCH 03/25] xfsprogs: Increase XFS_DEFER_OPS_NR_INODES to 5 Darrick J. Wong
2023-02-16 20:54   ` [PATCH 04/25] xfsprogs: get directory offset when adding directory name Darrick J. Wong
2023-02-16 20:54   ` [PATCH 05/25] xfsprogs: get directory offset when removing " Darrick J. Wong
2023-02-16 20:55   ` [PATCH 06/25] xfsprogs: get directory offset when replacing a " Darrick J. Wong
2023-02-16 20:55   ` [PATCH 07/25] xfsprogs: add parent pointer support to attribute code Darrick J. Wong
2023-02-16 20:55   ` [PATCH 08/25] xfsprogs: define parent pointer xattr format Darrick J. Wong
2023-02-16 20:55   ` [PATCH 09/25] xfsprogs: Add xfs_verify_pptr Darrick J. Wong
2023-02-16 20:56   ` [PATCH 10/25] xfsprogs: extend transaction reservations for parent attributes Darrick J. Wong
2023-02-16 20:56   ` [PATCH 11/25] xfsprogs: parent pointer attribute creation Darrick J. Wong
2023-02-16 20:56   ` [PATCH 12/25] xfsprogs: add parent attributes to link Darrick J. Wong
2023-02-16 20:56   ` [PATCH 13/25] xfsprogs: add parent attributes to symlink Darrick J. Wong
2023-02-16 20:57   ` [PATCH 14/25] xfsprogs: remove parent pointers in unlink Darrick J. Wong
2023-02-16 20:57   ` [PATCH 15/25] xfsprogs: Add parent pointers to rename Darrick J. Wong
2023-02-16 20:57   ` [PATCH 16/25] xfsprogs: Add the parent pointer support to the superblock version 5 Darrick J. Wong
2023-02-16 20:57   ` [PATCH 17/25] xfsprogs: Add parent pointer ioctl Darrick J. Wong
2023-02-16 20:58   ` [PATCH 18/25] xfsprogs: fix unit conversion error in xfs_log_calc_max_attrsetm_res Darrick J. Wong
2023-02-16 20:58   ` [PATCH 19/25] xfsprogs: drop compatibility minimum log size computations for reflink Darrick J. Wong
2023-02-16 20:58   ` [PATCH 20/25] xfsprogs: Add parent pointer flag to cmd Darrick J. Wong
2023-02-16 20:58   ` [PATCH 21/25] xfsprogs: Print pptrs in ATTRI items Darrick J. Wong
2023-02-16 20:59   ` [PATCH 22/25] xfs_db: report parent bit on xattrs Darrick J. Wong
2023-02-16 20:59   ` [PATCH 23/25] xfsprogs: implement the upper half of parent pointers Darrick J. Wong
2023-02-16 20:59   ` [PATCH 24/25] xfsprogs: Add parent pointers during protofile creation Darrick J. Wong
2023-02-16 21:00   ` [PATCH 25/25] xfsprogs: Add i, n and f flags to parent command Darrick J. Wong
2023-02-16 20:29 ` [PATCHSET v9r2d1 0/6] xfsprogs: bug fixes before parent pointers Darrick J. Wong
2023-02-16 21:00   ` [PATCH 1/6] libxfs: initialize the slab cache for parent defer items Darrick J. Wong
2023-02-16 21:00   ` [PATCH 2/6] xfs: directory lookups should return diroffsets too Darrick J. Wong
2023-02-16 21:00   ` [PATCH 3/6] xfs: move/add parent pointer validators to xfs_parent Darrick J. Wong
2023-02-16 21:01   ` [PATCH 4/6] xfs: don't remove the attr fork when parent pointers are enabled Darrick J. Wong
2023-02-16 21:01   ` [PATCH 5/6] xfs: pass the attr value to put_listent when possible Darrick J. Wong
2023-02-16 21:01   ` [PATCH 6/6] xfs: replace the XFS_IOC_GETPARENTS backend Darrick J. Wong
2023-02-16 20:29 ` [PATCHSET v9r2d1 0/6] xfsprogs: tool fixes for parent pointers Darrick J. Wong
2023-02-16 21:01   ` [PATCH 1/6] xfs_scrub: don't report media errors for space with unknowable owner Darrick J. Wong
2023-02-16 21:02   ` [PATCH 2/6] mkfs: fix libxfs api misuse Darrick J. Wong
2023-02-16 21:02   ` [PATCH 3/6] libxfs: create new files with attr forks if necessary Darrick J. Wong
2023-02-16 21:02   ` [PATCH 4/6] mkfs: fix subdir parent pointer creation Darrick J. Wong
2023-02-16 21:02   ` [PATCH 5/6] xfs_db: report parent pointer keys Darrick J. Wong
2023-02-16 21:03   ` [PATCH 6/6] xfs_db: obfuscate dirent and pptr names consistently Darrick J. Wong
2023-02-16 20:29 ` [PATCHSET v9r2d1 00/10] xfsprogs: actually use getparent ioctl Darrick J. Wong
2023-02-16 21:03   ` [PATCH 01/10] xfs_scrub: revert unnecessary code from "implement the upper half of parent pointers" Darrick J. Wong
2023-02-16 21:03   ` [PATCH 02/10] xfs_io: print path in path_print Darrick J. Wong
2023-02-16 21:03   ` [PATCH 03/10] xfs_io: move parent pointer filtering and formatting flags out of libhandle Darrick J. Wong
2023-02-16 21:04   ` [PATCH 04/10] libfrog: remove all the parent pointer code from libhandle Darrick J. Wong
2023-02-16 21:04   ` [PATCH 05/10] libfrog: fix indenting errors in xfss_pptr_alloc Darrick J. Wong
2023-02-16 21:04   ` [PATCH 06/10] libfrog: return positive errno in pptrs.c Darrick J. Wong
2023-02-16 21:04   ` [PATCH 07/10] libfrog: only walk one parent pointer at a time in handle_walk_parent_path_ptr Darrick J. Wong
2023-02-16 21:05   ` [PATCH 08/10] libfrog: trim trailing slashes when printing pptr paths Darrick J. Wong
2023-02-16 21:05   ` [PATCH 09/10] xfs_io: parent command is not experts-only Darrick J. Wong
2023-02-16 21:05   ` [PATCH 10/10] xfs_scrub: use parent pointers when possible to report file operations Darrick J. Wong
2023-02-16 20:30 ` [PATCHSET v9r2d1 0/4] xfsprogs: offline fsck support patches Darrick J. Wong
2023-02-16 21:06   ` [PATCH 1/4] libxfs: add xfile support Darrick J. Wong
2023-02-16 21:06   ` [PATCH 2/4] xfs: track file link count updates during live nlinks fsck Darrick J. Wong
2023-02-16 21:06   ` [PATCH 3/4] xfs: create a blob array data structure Darrick J. Wong
2023-02-16 21:06   ` [PATCH 4/4] libxfs: export attr3_leaf_hdr_from_disk via libxfs_api_defs.h Darrick J. Wong
2023-02-16 20:30 ` [PATCHSET v9r2d1 0/3] xfsprogs: online repair of directories Darrick J. Wong
2023-02-16 21:07   ` [PATCH 1/3] xfs: shorten parent pointer function names Darrick J. Wong
2023-02-16 21:07   ` [PATCH 2/3] xfs: rearrange bits of the parent pointer apis for fsck Darrick J. Wong
2023-02-16 21:07   ` [PATCH 3/3] xfs: add hooks to do directory updates Darrick J. Wong
2023-02-16 20:30 ` [PATCHSET v9r2d1 0/1] xfsprogs: online checking of parent pointers Darrick J. Wong
2023-02-16 21:07   ` [PATCH 1/1] xfs: deferred scrub " Darrick J. Wong
2023-02-16 20:30 ` [PATCHSET v9r2d1 0/2] xfsprogs: online checking " Darrick J. Wong
2023-02-16 21:08   ` [PATCH 1/2] xfs: repair parent pointers by scanning directories Darrick J. Wong
2023-02-16 21:08   ` [PATCH 2/2] xfs: repair parent pointers with live scan hooks Darrick J. Wong
2023-02-16 20:31 ` [PATCHSET v9r2d1 0/8] xfs_repair: support parent pointers Darrick J. Wong
2023-02-16 21:08   ` [PATCH 1/8] xfs_repair: build a parent pointer index Darrick J. Wong
2023-02-16 21:08   ` [PATCH 2/8] xfs_repair: check parent pointers Darrick J. Wong
2023-02-16 21:09   ` [PATCH 3/8] xfs_repair: dump garbage parent pointer attributes Darrick J. Wong
2023-02-16 21:09   ` [PATCH 4/8] xfs_repair: update ondisk parent pointer records Darrick J. Wong
2023-02-16 21:09   ` [PATCH 5/8] xfs_repair: wipe ondisk parent pointers when there are none Darrick J. Wong
2023-02-16 21:09   ` [PATCH 6/8] xfs_repair: move the global dirent name store to a separate object Darrick J. Wong
2023-02-16 21:10   ` [PATCH 7/8] xfs_repair: deduplicate strings stored in string blob Darrick J. Wong
2023-02-16 21:10   ` [PATCH 8/8] xfs_repair: try to reuse nameblob names for file pptr scan names Darrick J. Wong
2023-02-16 20:31 ` [PATCHSET v9r2d1 0/6] xfsprogs: encode parent pointer name in xattr key Darrick J. Wong
2023-02-16 21:10   ` [PATCH 1/6] libfrog: support the sha512 hash algorithm Darrick J. Wong
2023-02-16 21:10   ` [PATCH 2/6] xfs: replace parent pointer diroffset with sha512 hash of name Darrick J. Wong
2023-02-16 21:11   ` [PATCH 3/6] xfs_logprint: decode parent pointers fully Darrick J. Wong
2023-02-16 21:11   ` [PATCH 4/6] xfs: skip the sha512 namehash when possible Darrick J. Wong
2023-02-16 21:11   ` [PATCH 5/6] xfs: make the ondisk parent pointer record a flex array Darrick J. Wong
2023-02-16 21:12   ` [PATCH 6/6] xfs: use parent pointer xattr space more efficiently Darrick J. Wong
2023-02-16 20:31 ` [PATCHSET v9r2d1 0/3] xfsprogs: use flex arrays for XFS_IOC_GETPARENTS Darrick J. Wong
2023-02-16 21:12   ` [PATCH 1/3] xfs: rename xfs_pptr_info to xfs_getparents Darrick J. Wong
2023-02-16 21:12   ` [PATCH 2/3] xfs: rename xfs_parent_ptr Darrick J. Wong
2023-02-16 21:12   ` [PATCH 3/3] xfs: convert GETPARENTS structures to flex arrays Darrick J. Wong
2023-02-16 20:31 ` [PATCHSET v9r2d1 0/3] xfsprogs: turn on all available features Darrick J. Wong
2023-02-16 21:13   ` [PATCH 1/3] mkfs: enable large extent counts by default Darrick J. Wong
2023-02-16 21:13   ` [PATCH 2/3] mkfs: enable reverse mapping " Darrick J. Wong
2023-02-16 21:13   ` [PATCH 3/3] mkfs: enable parent pointers " Darrick J. Wong
2023-02-16 20:32 ` [PATCHSET 00/14] fstests: adjust tests for xfs parent pointers Darrick J. Wong
2023-02-16 21:13   ` [PATCH 01/14] xfs/122: update for " Darrick J. Wong
2023-02-16 21:14   ` [PATCH 02/14] populate: create hardlinks " Darrick J. Wong
2023-02-16 21:14   ` [PATCH 03/14] xfs/021: adapt golden output files " Darrick J. Wong
2023-02-16 21:14   ` [PATCH 04/14] generic/050: adapt " Darrick J. Wong
2023-02-16 21:14   ` [PATCH 05/14] xfs/018: disable parent pointers for this test Darrick J. Wong
2023-02-16 21:15   ` [PATCH 06/14] xfs/306: fix formatting failures with parent pointers Darrick J. Wong
2023-02-16 21:15   ` [PATCH 07/14] common: add helpers for parent pointer tests Darrick J. Wong
2023-02-16 21:15   ` [PATCH 08/14] xfs: add parent pointer test Darrick J. Wong
2023-02-16 21:15   ` [PATCH 09/14] xfs: add multi link " Darrick J. Wong
2023-02-16 21:16   ` [PATCH 10/14] xfs: add parent pointer inject test Darrick J. Wong
2023-02-16 21:16   ` [PATCH 11/14] common/parent: add license and copyright Darrick J. Wong
2023-02-16 21:16   ` [PATCH 12/14] common/parent: don't _fail on missing parent pointer components Darrick J. Wong
2023-02-16 21:16   ` [PATCH 13/14] common/parent: check xfs_io parent command paths Darrick J. Wong
2023-02-16 21:17   ` [PATCH 14/14] xfs/851: test xfs_io parent -p too Darrick J. Wong
2023-02-16 20:32 ` [PATCHSET v9r2 0/4] fstests: encode parent pointer name in xattr key Darrick J. Wong
2023-02-16 21:17   ` [PATCH 1/4] misc: adjust for parent pointers with namehashes Darrick J. Wong
2023-02-16 21:17   ` [PATCH 2/4] xfs/021: adjust for short parent pointers with hashes Darrick J. Wong
2023-02-16 21:18   ` [PATCH 3/4] xfs/242: fix _filter_bmap for xfs_io bmap that does rt file properly Darrick J. Wong
2023-02-16 21:18   ` [PATCH 4/4] xfs/021: adjust for short valuelens Darrick J. Wong
2023-02-16 20:32 ` [PATCHSET v9r2 0/1] fstests: use flex arrays for XFS_IOC_GETPARENTS Darrick J. Wong
2023-02-16 21:18   ` [PATCH 1/1] xfs/122: adjust for flex-array XFS_IOC_GETPARENTS ioctl Darrick J. Wong
2023-02-17 20:02 ` [RFC DELUGE v9r2d1] xfs: Parent Pointers Allison Henderson
2023-02-24  2:51   ` Darrick J. Wong
2023-02-24  7:24     ` Amir Goldstein
2023-02-25  1:58       ` Darrick J. Wong
2023-02-25  7:34     ` Allison Henderson
2023-03-01  1:24       ` Darrick J. Wong
2023-03-08 22:47         ` Allison Henderson
2023-03-14  2:20           ` Darrick J. Wong [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=20230314022035.GA11376@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --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.