summaryrefslogtreecommitdiff
path: root/fs/xfs/Makefile
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2021-09-01 10:40:21 -0700
committerDarrick J. Wong <djwong@kernel.org>2021-09-17 18:54:50 -0700
commitd055e86d7ba83a5762769e91ecb8f3ea3cd34435 (patch)
tree5bea6666ce9369ef56cdecef09445d328cb5513d /fs/xfs/Makefile
parent2fbdb9683fb8c1dab149e11dcfca3a08ffc67e89 (diff)
xfs: create a big array data structure
Create a simple 'big array' data structure for storage of fixed-size metadata records that will be used to reconstruct a btree index. For repair operations, the most important operations are append, iterate, and sort. Earlier implementations of the big array used linked lists and suffered from severe problems -- pinning all records in kernel memory was not a good idea and frequently lead to OOM situations; random access was very inefficient; and record overhead for the lists was unacceptably high at 40-60%. Therefore, the big memory array relies on the 'xfile' abstraction, which creates a memfd file and stores the records in page cache pages. Since the memfd is created in tmpfs, the memory pages can be pushed out to disk if necessary and we have a built-in usage limit of 50% of physical memory. Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs/xfs/Makefile')
-rw-r--r--fs/xfs/Makefile2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile
index 04611a1068b4..6269de7582b7 100644
--- a/fs/xfs/Makefile
+++ b/fs/xfs/Makefile
@@ -137,6 +137,7 @@ xfs-y += $(addprefix scrub/, \
trace.o \
agheader.o \
alloc.o \
+ array.o \
attr.o \
bmap.o \
btree.o \
@@ -152,6 +153,7 @@ xfs-y += $(addprefix scrub/, \
rmap.o \
scrub.o \
symlink.o \
+ xfile.o \
)
xfs-$(CONFIG_XFS_RT) += scrub/rtbitmap.o