public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] xfs: metadata inode directories
@ 2019-01-01  2:22 Darrick J. Wong
  2019-01-01  2:22 ` [PATCH 01/13] xfs: create imeta abstractions to get and set metadata inodes Darrick J. Wong
                   ` (14 more replies)
  0 siblings, 15 replies; 18+ messages in thread
From: Darrick J. Wong @ 2019-01-01  2:22 UTC (permalink / raw)
  To: darrick.wong; +Cc: linux-xfs

Hi all,

This series delivers a new feature -- metadata inode directories.  This
is a separate directory tree (rooted in the superblock) that contains
only inodes that contain filesystem metadata.  Different metadata
objects can be looked up with regular paths.

We start by creating xfs_imeta_* functions to mediate access to metadata
inode pointers.  This enables the imeta code to abstract inode pointers,
whether they're the classic five in the superblock, or the much more
complex directory tree.  All current users of metadata inodes (rt+quota)
are converted to use the boilerplate code.

Next, we define the metadir on-disk format, which consists of marking
inodes with a new iflag that says they're metadata.  This we use to
prevent bulkstat and friends from ever getting their hands on fs
metadata.

Finally, we implement metadir operations so that clients can create,
delete, zap, and look up metadata inodes by path.  Beware that much of
this code is only lightly used, because the five current users of
metadata inodes don't tend to change them very often.  This is likely to
change if and when the subvolume and multiple-rt-volume features get
written/merged/etc.

If you're going to start using this mess, you probably ought to just
pull from my git trees.  The kernel patches[1] should apply against
4.20.  xfsprogs[2] and xfstests[3] can be found in their usual
places.  The git trees contain all four series' worth of changes.

This is an extraordinary way to destroy everything.  Enjoy!
Comments and questions are, as always, welcome.

--D

[1] https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=djwong-devel
[2] https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=djwong-devel
[3] https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=djwong-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2019-01-17 23:50 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-01  2:22 [PATCH 00/13] xfs: metadata inode directories Darrick J. Wong
2019-01-01  2:22 ` [PATCH 01/13] xfs: create imeta abstractions to get and set metadata inodes Darrick J. Wong
2019-01-01  2:22 ` [PATCH 02/13] xfs: create transaction reservations for metadata inode operations Darrick J. Wong
2019-01-01  2:22 ` [PATCH 03/13] xfs: refactor the v4 group/project inode pointer switch Darrick J. Wong
2019-01-01  2:22 ` [PATCH 04/13] xfs: convert all users to xfs_imeta_log Darrick J. Wong
2019-01-01  2:22 ` [PATCH 05/13] xfs: iget for metadata inodes Darrick J. Wong
2019-01-01  2:23 ` [PATCH 06/13] xfs: define the on-disk format for the metadir feature Darrick J. Wong
2019-01-01  2:23 ` [PATCH 07/13] xfs: load metadata inode directory at mount time Darrick J. Wong
2019-01-01  2:23 ` [PATCH 08/13] xfs: convert metadata inode lookup keys to use paths Darrick J. Wong
2019-01-01  2:23 ` [PATCH 09/13] xfs: enforce metadata inode flag Darrick J. Wong
2019-01-01  2:23 ` [PATCH 10/13] xfs: read and write metadata inode directory Darrick J. Wong
2019-01-01  2:23 ` [PATCH 11/13] xfs: ensure metadata directory paths exist before creating files Darrick J. Wong
2019-01-01  2:23 ` [PATCH 12/13] xfs: disable the agi rotor for metadata inodes Darrick J. Wong
2019-01-01  2:23 ` [PATCH 13/13] xfs: enable metadata inode directory feature Darrick J. Wong
2019-01-01  9:29 ` [PATCH 00/13] xfs: metadata inode directories Amir Goldstein
2019-01-17 14:26 ` Christoph Hellwig
2019-01-17 23:36   ` Darrick J. Wong
2019-01-17 23:50     ` Darrick J. Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox