tag name | metadir_2022-11-09 (b962fc961686feb36a84d1da3fa237c6f9751f3c) |
tag date | 2022-11-09 19:10:26 -0800 |
tagged by | Darrick J. Wong <djwong@kernel.org> |
tagged object | commit 668601466c... |
xfs: metadata inode directories
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.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEUzaAxoMeQq6m2jMV+H93GTRKtOsFAmNsa6IACgkQ+H93GTRK
tOu9PQ/9Gt7A3tMoVyMax1pO/YUjYWrgoutvaDRa7npQNNfrU1pGAoEC3P0hBia+
jFPG2GN5VwooUDfUAuDj2lV6DTaf5IQ6WckEoap9kjK7x1WJ8FTrSB9HNmgOuo76
bQBVkurev9G6fLunrOKlvOrs86FzHxJJGh5lnmN91gXeDTmpd/Zz5njkCCLacefk
k74N3Pzv3l3tCzpeedB7qGfunv0byAamVqvM+/9jcyB5kh8LR7vej1hOQ7pywhTT
sAXLGRkte7lCEUrFWQzdytxI7q4lM5wh7rT8rN1drHv5rmQ4K6HY1+cuhuHG3JUt
JSadjWTG/a2hHdMrdhno2h4b4JwLNrF1G8Agq0VkfZXcupQzwiGVaaFjL+dkzpA+
MFG9jEAuZLMur0/Zti8EgEJvDyep455cElKSCmy6cx6EQwk2/vuIGvs51Eofb5gE
QspBxAbRVQgngIRZ+ha2dr9szjjPOgOQimtGjW2W2xnFh5q6wIYuq+UOkz65DnA5
XZkTZbdNCM+ufQO03qJ0EmJXMX2e3PCK1G3rozQJpaBO7kt83SgVGuludFrUSKUf
2UUsrW+HthOtyFRKpxd/GV1bTIyP1Oxr3MgeYzQaK7R6idT1AImNIEj+fPgGMRi1
IZ2ei3GPVh4JD78uo7io1DXHV2GKCwJFWHulyOG5YQSyNZGR3PU=
=JFgJ
-----END PGP SIGNATURE-----