From: "Darrick J. Wong" <djwong@kernel.org>
To: djwong@kernel.org
Cc: linux-xfs@vger.kernel.org
Subject: [PATCH 1/3] xfs: map xfile pages directly into xfs_buf
Date: Sun, 31 Dec 2023 12:40:09 -0800 [thread overview]
Message-ID: <170404837613.1754104.1414992009596163702.stgit@frogsfrogsfrogs> (raw)
In-Reply-To: <170404837590.1754104.3601847870577015044.stgit@frogsfrogsfrogs>
From: Darrick J. Wong <djwong@kernel.org>
Map the xfile pages directly into xfs_buf to reduce memory overhead.
It's silly to use memory to stage changes to shmem pages for ephemeral
btrees that don't care about transactionality.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
fs/xfs/libxfs/xfs_btree_mem.h | 6 ++
fs/xfs/libxfs/xfs_rmap_btree.c | 1
fs/xfs/scrub/rcbag_btree.c | 1
fs/xfs/scrub/xfbtree.c | 23 +++++-
fs/xfs/xfs_buf.c | 110 ++++++++++++++++++++++-------
fs/xfs/xfs_buf.h | 16 ++++
fs/xfs/xfs_buf_xfile.c | 152 ++++++++++++++++++++++++++++++++++++++++
fs/xfs/xfs_buf_xfile.h | 11 +++
8 files changed, 292 insertions(+), 28 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_btree_mem.h b/fs/xfs/libxfs/xfs_btree_mem.h
index 1f961f3f55444..cfb30cb1aabc6 100644
--- a/fs/xfs/libxfs/xfs_btree_mem.h
+++ b/fs/xfs/libxfs/xfs_btree_mem.h
@@ -17,8 +17,14 @@ struct xfbtree_config {
/* Owner of this btree. */
unsigned long long owner;
+
+ /* XFBTREE_* flags */
+ unsigned int flags;
};
+/* buffers should be directly mapped from memory */
+#define XFBTREE_DIRECT_MAP (1U << 0)
+
#ifdef CONFIG_XFS_BTREE_IN_XFILE
unsigned int xfs_btree_mem_head_nlevels(struct xfs_buf *head_bp);
diff --git a/fs/xfs/libxfs/xfs_rmap_btree.c b/fs/xfs/libxfs/xfs_rmap_btree.c
index 23841ee6e2ff6..71d32f9fee14d 100644
--- a/fs/xfs/libxfs/xfs_rmap_btree.c
+++ b/fs/xfs/libxfs/xfs_rmap_btree.c
@@ -672,6 +672,7 @@ xfs_rmapbt_mem_create(
.btree_ops = &xfs_rmapbt_mem_ops,
.target = target,
.owner = agno,
+ .flags = XFBTREE_DIRECT_MAP,
};
return xfbtree_create(mp, &cfg, xfbtreep);
diff --git a/fs/xfs/scrub/rcbag_btree.c b/fs/xfs/scrub/rcbag_btree.c
index 3d66e80b7bc25..9807e08129fe4 100644
--- a/fs/xfs/scrub/rcbag_btree.c
+++ b/fs/xfs/scrub/rcbag_btree.c
@@ -233,6 +233,7 @@ rcbagbt_mem_create(
struct xfbtree_config cfg = {
.btree_ops = &rcbagbt_mem_ops,
.target = target,
+ .flags = XFBTREE_DIRECT_MAP,
};
return xfbtree_create(mp, &cfg, xfbtreep);
diff --git a/fs/xfs/scrub/xfbtree.c b/fs/xfs/scrub/xfbtree.c
index 016026947019a..9e557d87d1c9c 100644
--- a/fs/xfs/scrub/xfbtree.c
+++ b/fs/xfs/scrub/xfbtree.c
@@ -501,6 +501,9 @@ xfbtree_create(
if (!xfbt)
return -ENOMEM;
xfbt->target = cfg->target;
+ if (cfg->flags & XFBTREE_DIRECT_MAP)
+ xfbt->target->bt_flags |= XFS_BUFTARG_DIRECT_MAP;
+
xfboff_bitmap_init(&xfbt->freespace);
/* Set up min/maxrecs for this btree. */
@@ -753,7 +756,7 @@ xfbtree_trans_commit(
dirty = xfbtree_trans_bdetach(tp, bp);
if (dirty && !corrupt) {
- xfs_failaddr_t fa = bp->b_ops->verify_struct(bp);
+ xfs_failaddr_t fa;
/*
* Because this btree is ephemeral, validate the buffer
@@ -761,16 +764,30 @@ xfbtree_trans_commit(
* corruption errors to the caller without shutting
* down the filesystem.
*
+ * Buffers that are directly mapped to the xfile do not
+ * need to be queued for IO at all. Check if the DRAM
+ * has been poisoned, however.
+ *
* If the buffer fails verification, log the failure
* but continue walking the transaction items so that
* we remove all ephemeral btree buffers.
*/
+ if (xfs_buf_check_poisoned(bp)) {
+ corrupt = true;
+ xfs_verifier_error(bp, -EFSCORRUPTED,
+ __this_address);
+ continue;
+ }
+
+ fa = bp->b_ops->verify_struct(bp);
if (fa) {
corrupt = true;
xfs_verifier_error(bp, -EFSCORRUPTED, fa);
- } else {
+ continue;
+ }
+
+ if (!(bp->b_flags & _XBF_DIRECT_MAP))
xfs_buf_delwri_queue_here(bp, &buffer_list);
- }
}
xfs_buf_relse(bp);
diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index b62518968e784..ca7657d0ea592 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -280,19 +280,26 @@ xfs_buf_free_pages(
ASSERT(bp->b_flags & _XBF_PAGES);
- if (xfs_buf_is_vmapped(bp))
- vm_unmap_ram(bp->b_addr, bp->b_page_count);
-
for (i = 0; i < bp->b_page_count; i++) {
if (bp->b_pages[i])
__free_page(bp->b_pages[i]);
}
mm_account_reclaimed_pages(bp->b_page_count);
+ xfs_buf_free_page_array(bp);
+}
+
+void
+xfs_buf_free_page_array(
+ struct xfs_buf *bp)
+{
+ ASSERT(bp->b_flags & _XBF_PAGES);
+
if (bp->b_pages != bp->b_page_array)
kmem_free(bp->b_pages);
bp->b_pages = NULL;
bp->b_flags &= ~_XBF_PAGES;
+ bp->b_page_count = 0;
}
static void
@@ -313,7 +320,12 @@ xfs_buf_free(
ASSERT(list_empty(&bp->b_lru));
- if (bp->b_flags & _XBF_PAGES)
+ if (xfs_buf_is_vmapped(bp))
+ vm_unmap_ram(bp->b_addr, bp->b_page_count);
+
+ if (bp->b_flags & _XBF_DIRECT_MAP)
+ xfile_buf_unmap_pages(bp);
+ else if (bp->b_flags & _XBF_PAGES)
xfs_buf_free_pages(bp);
else if (bp->b_flags & _XBF_KMEM)
kmem_free(bp->b_addr);
@@ -352,20 +364,14 @@ xfs_buf_alloc_kmem(
return 0;
}
-static int
-xfs_buf_alloc_pages(
+/* Make sure that we have a page list */
+int
+xfs_buf_alloc_page_array(
struct xfs_buf *bp,
- xfs_buf_flags_t flags)
+ gfp_t gfp_mask)
{
- gfp_t gfp_mask = __GFP_NOWARN;
- long filled = 0;
+ ASSERT(!(bp->b_flags & _XBF_PAGES));
- if (flags & XBF_READ_AHEAD)
- gfp_mask |= __GFP_NORETRY;
- else
- gfp_mask |= GFP_NOFS;
-
- /* Make sure that we have a page list */
bp->b_page_count = DIV_ROUND_UP(BBTOB(bp->b_length), PAGE_SIZE);
if (bp->b_page_count <= XB_PAGES) {
bp->b_pages = bp->b_page_array;
@@ -375,7 +381,28 @@ xfs_buf_alloc_pages(
if (!bp->b_pages)
return -ENOMEM;
}
+
bp->b_flags |= _XBF_PAGES;
+ return 0;
+}
+
+static int
+xfs_buf_alloc_pages(
+ struct xfs_buf *bp,
+ xfs_buf_flags_t flags)
+{
+ gfp_t gfp_mask = __GFP_NOWARN;
+ long filled = 0;
+ int error;
+
+ if (flags & XBF_READ_AHEAD)
+ gfp_mask |= __GFP_NORETRY;
+ else
+ gfp_mask |= GFP_NOFS;
+
+ error = xfs_buf_alloc_page_array(bp, gfp_mask);
+ if (error)
+ return error;
/* Assure zeroed buffer for non-read cases. */
if (!(flags & XBF_READ))
@@ -418,7 +445,8 @@ _xfs_buf_map_pages(
struct xfs_buf *bp,
xfs_buf_flags_t flags)
{
- ASSERT(bp->b_flags & _XBF_PAGES);
+ ASSERT(bp->b_flags & (_XBF_PAGES | _XBF_DIRECT_MAP));
+
if (bp->b_page_count == 1) {
/* A single page buffer is always mappable */
bp->b_addr = page_address(bp->b_pages[0]);
@@ -569,7 +597,7 @@ xfs_buf_find_lock(
return -ENOENT;
}
ASSERT((bp->b_flags & _XBF_DELWRI_Q) == 0);
- bp->b_flags &= _XBF_KMEM | _XBF_PAGES;
+ bp->b_flags &= _XBF_KMEM | _XBF_PAGES | _XBF_DIRECT_MAP;
bp->b_ops = NULL;
}
return 0;
@@ -628,18 +656,36 @@ xfs_buf_find_insert(
goto out_drop_pag;
/*
- * For buffers that fit entirely within a single page, first attempt to
- * allocate the memory from the heap to minimise memory usage. If we
- * can't get heap memory for these small buffers, we fall back to using
- * the page allocator.
+ * If the caller is ok with direct maps to xfile pages, try that.
+ * ENOTBLK is the magic code to fall back to allocating memory.
*/
- if (BBTOB(new_bp->b_length) >= PAGE_SIZE ||
- xfs_buf_alloc_kmem(new_bp, flags) < 0) {
- error = xfs_buf_alloc_pages(new_bp, flags);
- if (error)
+ if (xfile_buftarg_can_direct_map(btp)) {
+ error = xfile_buf_map_pages(new_bp, flags);
+ if (error && error != -ENOTBLK)
goto out_free_buf;
+ if (!error)
+ goto insert;
}
+ /*
+ * For buffers that fit entirely within a single page, first attempt to
+ * allocate the memory from the heap to minimise memory usage.
+ */
+ if (BBTOB(new_bp->b_length) < PAGE_SIZE) {
+ error = xfs_buf_alloc_kmem(new_bp, flags);
+ if (!error)
+ goto insert;
+ }
+
+ /*
+ * For larger buffers or if we can't get heap memory for these small
+ * buffers, fall back to using the page allocator.
+ */
+ error = xfs_buf_alloc_pages(new_bp, flags);
+ if (error)
+ goto out_free_buf;
+
+insert:
spin_lock(&bch->bc_lock);
bp = rhashtable_lookup_get_insert_fast(&bch->bc_hash,
&new_bp->b_rhash_head, xfs_buf_hash_params);
@@ -1584,6 +1630,20 @@ xfs_buf_end_sync_io(
xfs_buf_ioend(bp);
}
+bool
+xfs_buf_check_poisoned(
+ struct xfs_buf *bp)
+{
+ unsigned int i;
+
+ for (i = 0; i < bp->b_page_count; i++) {
+ if (PageHWPoison(bp->b_pages[i]))
+ return true;
+ }
+
+ return false;
+}
+
STATIC void
_xfs_buf_ioapply(
struct xfs_buf *bp)
diff --git a/fs/xfs/xfs_buf.h b/fs/xfs/xfs_buf.h
index 5a6cf3d5a9f53..9d05c376d9dd8 100644
--- a/fs/xfs/xfs_buf.h
+++ b/fs/xfs/xfs_buf.h
@@ -43,6 +43,11 @@ struct xfile;
#define _XBF_PAGES (1u << 20)/* backed by refcounted pages */
#define _XBF_KMEM (1u << 21)/* backed by heap memory */
#define _XBF_DELWRI_Q (1u << 22)/* buffer on a delwri queue */
+#ifdef CONFIG_XFS_IN_MEMORY_FILE
+# define _XBF_DIRECT_MAP (1u << 23)/* pages directly mapped to storage */
+#else
+# define _XBF_DIRECT_MAP (0)
+#endif
/* flags used only as arguments to access routines */
/*
@@ -72,6 +77,7 @@ typedef unsigned int xfs_buf_flags_t;
{ _XBF_PAGES, "PAGES" }, \
{ _XBF_KMEM, "KMEM" }, \
{ _XBF_DELWRI_Q, "DELWRI_Q" }, \
+ { _XBF_DIRECT_MAP, "DIRECT_MAP" }, \
/* The following interface flags should never be set */ \
{ XBF_LIVESCAN, "LIVESCAN" }, \
{ XBF_INCORE, "INCORE" }, \
@@ -131,8 +137,14 @@ typedef struct xfs_buftarg {
#ifdef CONFIG_XFS_IN_MEMORY_FILE
/* in-memory buftarg via bt_xfile */
# define XFS_BUFTARG_XFILE (1U << 0)
+/*
+ * Buffer pages are direct-mapped to the xfile; caller does not care about
+ * transactional updates.
+ */
+# define XFS_BUFTARG_DIRECT_MAP (1U << 1)
#else
# define XFS_BUFTARG_XFILE (0)
+# define XFS_BUFTARG_DIRECT_MAP (0)
#endif
#define XB_PAGES 2
@@ -382,6 +394,9 @@ xfs_buf_update_cksum(struct xfs_buf *bp, unsigned long cksum_offset)
cksum_offset);
}
+int xfs_buf_alloc_page_array(struct xfs_buf *bp, gfp_t gfp_mask);
+void xfs_buf_free_page_array(struct xfs_buf *bp);
+
/*
* Handling of buftargs.
*/
@@ -453,5 +468,6 @@ xfs_buftarg_verify_daddr(
int xfs_buf_reverify(struct xfs_buf *bp, const struct xfs_buf_ops *ops);
bool xfs_verify_magic(struct xfs_buf *bp, __be32 dmagic);
bool xfs_verify_magic16(struct xfs_buf *bp, __be16 dmagic);
+bool xfs_buf_check_poisoned(struct xfs_buf *bp);
#endif /* __XFS_BUF_H__ */
diff --git a/fs/xfs/xfs_buf_xfile.c b/fs/xfs/xfs_buf_xfile.c
index 51c5c692156b1..be1e54be070ce 100644
--- a/fs/xfs/xfs_buf_xfile.c
+++ b/fs/xfs/xfs_buf_xfile.c
@@ -18,6 +18,11 @@ xfile_buf_ioapply(
loff_t pos = BBTOB(xfs_buf_daddr(bp));
size_t size = BBTOB(bp->b_length);
+ if (bp->b_target->bt_flags & XFS_BUFTARG_DIRECT_MAP) {
+ /* direct mapping means no io necessary */
+ return 0;
+ }
+
if (bp->b_map_count > 1) {
/* We don't need or support multi-map buffers. */
ASSERT(0);
@@ -95,3 +100,150 @@ xfile_buftarg_nr_sectors(
{
return xfile_size(btp->bt_xfile) >> SECTOR_SHIFT;
}
+
+/* Free an xfile page that was directly mapped into the buffer cache. */
+static int
+xfile_buf_put_page(
+ struct xfile *xfile,
+ loff_t pos,
+ struct page *page)
+{
+ struct xfile_page xfpage = {
+ .page = page,
+ .pos = round_down(pos, PAGE_SIZE),
+ };
+
+ lock_page(xfpage.page);
+
+ return xfile_put_page(xfile, &xfpage);
+}
+
+/* Grab the xfile page for this part of the xfile. */
+static int
+xfile_buf_get_page(
+ struct xfile *xfile,
+ loff_t pos,
+ unsigned int len,
+ struct page **pagep)
+{
+ struct xfile_page xfpage = { NULL };
+ int error;
+
+ error = xfile_get_page(xfile, pos, len, &xfpage);
+ if (error)
+ return error;
+
+ /*
+ * Fall back to regular DRAM buffers if tmpfs gives us fsdata or the
+ * page pos isn't what we were expecting.
+ */
+ if (xfpage.fsdata || xfpage.pos != round_down(pos, PAGE_SIZE)) {
+ xfile_put_page(xfile, &xfpage);
+ return -ENOTBLK;
+ }
+
+ /* Unlock the page before we start using them for the buffer cache. */
+ ASSERT(PageUptodate(xfpage.page));
+ unlock_page(xfpage.page);
+
+ *pagep = xfpage.page;
+ return 0;
+}
+
+/*
+ * Try to map storage directly, if the target supports it. Returns 0 for
+ * success, -ENOTBLK to mean "not supported", or the usual negative errno.
+ */
+int
+xfile_buf_map_pages(
+ struct xfs_buf *bp,
+ xfs_buf_flags_t flags)
+{
+ struct xfs_buf_map *map;
+ gfp_t gfp_mask = __GFP_NOWARN;
+ const unsigned int page_align_mask = PAGE_SIZE - 1;
+ unsigned int m, p, n;
+ int error;
+
+ ASSERT(xfile_buftarg_can_direct_map(bp->b_target));
+
+ /* For direct-map buffers, each map has to be page aligned. */
+ for (m = 0, map = bp->b_maps; m < bp->b_map_count; m++, map++)
+ if (BBTOB(map->bm_bn | map->bm_len) & page_align_mask)
+ return -ENOTBLK;
+
+ if (flags & XBF_READ_AHEAD)
+ gfp_mask |= __GFP_NORETRY;
+ else
+ gfp_mask |= GFP_NOFS;
+
+ error = xfs_buf_alloc_page_array(bp, gfp_mask);
+ if (error)
+ return error;
+
+ /* Map in the xfile pages. */
+ for (m = 0, p = 0, map = bp->b_maps; m < bp->b_map_count; m++, map++) {
+ for (n = 0; n < map->bm_len; n += BTOBB(PAGE_SIZE)) {
+ unsigned int len;
+
+ len = min_t(unsigned int, BBTOB(map->bm_len - n),
+ PAGE_SIZE);
+
+ error = xfile_buf_get_page(bp->b_target->bt_xfile,
+ BBTOB(map->bm_bn + n), len,
+ &bp->b_pages[p++]);
+ if (error)
+ goto fail;
+ }
+ }
+
+ bp->b_flags |= _XBF_DIRECT_MAP;
+ return 0;
+
+fail:
+ /*
+ * Release all the xfile pages and free the page array, we're falling
+ * back to a DRAM buffer, which could be pages or a slab allocation.
+ */
+ for (m = 0, p = 0, map = bp->b_maps; m < bp->b_map_count; m++, map++) {
+ for (n = 0; n < map->bm_len; n += BTOBB(PAGE_SIZE)) {
+ if (bp->b_pages[p] == NULL)
+ continue;
+
+ xfile_buf_put_page(bp->b_target->bt_xfile,
+ BBTOB(map->bm_bn + n),
+ bp->b_pages[p++]);
+ }
+ }
+
+ xfs_buf_free_page_array(bp);
+ return error;
+}
+
+/* Unmap all the direct-mapped buffer pages. */
+void
+xfile_buf_unmap_pages(
+ struct xfs_buf *bp)
+{
+ struct xfs_buf_map *map;
+ unsigned int m, p, n;
+ int error = 0, err2;
+
+ ASSERT(xfile_buftarg_can_direct_map(bp->b_target));
+
+ for (m = 0, p = 0, map = bp->b_maps; m < bp->b_map_count; m++, map++) {
+ for (n = 0; n < map->bm_len; n += BTOBB(PAGE_SIZE)) {
+ err2 = xfile_buf_put_page(bp->b_target->bt_xfile,
+ BBTOB(map->bm_bn + n),
+ bp->b_pages[p++]);
+ if (!error && err2)
+ error = err2;
+ }
+ }
+
+ if (error)
+ xfs_err(bp->b_mount, "%s failed errno %d", __func__, error);
+
+ bp->b_flags &= ~_XBF_DIRECT_MAP;
+ xfs_buf_free_page_array(bp);
+}
diff --git a/fs/xfs/xfs_buf_xfile.h b/fs/xfs/xfs_buf_xfile.h
index c8d78d01ea5df..6ff2104780010 100644
--- a/fs/xfs/xfs_buf_xfile.h
+++ b/fs/xfs/xfs_buf_xfile.h
@@ -12,9 +12,20 @@ int xfile_alloc_buftarg(struct xfs_mount *mp, const char *descr,
struct xfs_buftarg **btpp);
void xfile_free_buftarg(struct xfs_buftarg *btp);
xfs_daddr_t xfile_buftarg_nr_sectors(struct xfs_buftarg *btp);
+int xfile_buf_map_pages(struct xfs_buf *bp, xfs_buf_flags_t flags);
+void xfile_buf_unmap_pages(struct xfs_buf *bp);
+
+static inline bool xfile_buftarg_can_direct_map(const struct xfs_buftarg *btp)
+{
+ return (btp->bt_flags & XFS_BUFTARG_XFILE) &&
+ (btp->bt_flags & XFS_BUFTARG_DIRECT_MAP);
+}
#else
# define xfile_buf_ioapply(bp) (-EOPNOTSUPP)
# define xfile_buftarg_nr_sectors(btp) (0)
+# define xfile_buf_map_pages(b,f) (-ENOTBLK)
+# define xfile_buf_unmap_pages(bp) ((void)0)
+# define xfile_buftarg_can_direct_map(btp) (false)
#endif /* CONFIG_XFS_IN_MEMORY_FILE */
#endif /* __XFS_BUF_XFILE_H__ */
next prev parent reply other threads:[~2023-12-31 20:40 UTC|newest]
Thread overview: 639+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-31 18:12 [NYE PATCHRIVER 1/4] xfs: the rest of online repair part 1 Darrick J. Wong
2023-12-31 19:25 ` [PATCHSET v29.0 01/28] xfs: live inode scans for online fsck Darrick J. Wong
2023-12-31 20:04 ` [PATCH 1/7] xfs: speed up xfs_iwalk_adjust_start a little bit Darrick J. Wong
2024-01-02 10:24 ` Christoph Hellwig
2023-12-31 20:04 ` [PATCH 2/7] xfs: implement live inode scan for scrub Darrick J. Wong
2024-01-02 11:22 ` Christoph Hellwig
2023-12-31 20:05 ` [PATCH 3/7] xfs: allow scrub to hook metadata updates in other writers Darrick J. Wong
2024-01-02 11:30 ` Christoph Hellwig
2024-01-03 0:23 ` Darrick J. Wong
2023-12-31 20:05 ` [PATCH 4/7] xfs: allow blocking notifier chains with filesystem hooks Darrick J. Wong
2024-01-02 10:28 ` Christoph Hellwig
2024-01-03 1:07 ` Darrick J. Wong
2024-01-03 7:37 ` Christoph Hellwig
2024-01-03 18:40 ` Darrick J. Wong
2023-12-31 20:05 ` [PATCH 5/7] xfs: stagger the starting AG of scrub iscans to reduce contention Darrick J. Wong
2024-01-02 11:30 ` Christoph Hellwig
2023-12-31 20:06 ` [PATCH 6/7] xfs: cache a bunch of inodes for repair scans Darrick J. Wong
2024-01-02 11:40 ` Christoph Hellwig
2023-12-31 20:06 ` [PATCH 7/7] xfs: iscan batching should handle unallocated inodes too Darrick J. Wong
2024-01-02 11:40 ` Christoph Hellwig
2024-01-03 1:09 ` Darrick J. Wong
2023-12-31 19:25 ` [PATCHSET v29.0 02/28] xfs: repair inode mode by scanning dirs Darrick J. Wong
2023-12-31 20:06 ` [PATCH 1/4] xfs: create a static name for the dot entry too Darrick J. Wong
2024-01-02 11:11 ` Christoph Hellwig
2023-12-31 20:06 ` [PATCH 2/4] xfs: create a predicate to determine if two xfs_names are the same Darrick J. Wong
2024-01-02 11:13 ` Christoph Hellwig
2024-01-03 0:02 ` Darrick J. Wong
2023-12-31 20:07 ` [PATCH 3/4] xfs: create a macro for decoding ftypes in tracepoints Darrick J. Wong
2024-01-02 11:13 ` Christoph Hellwig
2024-01-03 0:06 ` Darrick J. Wong
2023-12-31 20:07 ` [PATCH 4/4] xfs: repair file modes by scanning for a dirent pointing to us Darrick J. Wong
2024-01-02 10:29 ` Christoph Hellwig
2024-01-03 2:50 ` Darrick J. Wong
2024-01-03 7:38 ` Christoph Hellwig
2023-12-31 19:26 ` [PATCHSET v29.0 03/28] xfs: online repair of quota counters Darrick J. Wong
2023-12-31 20:07 ` [PATCH 1/5] xfs: report the health of quota counts Darrick J. Wong
2024-01-02 10:30 ` Christoph Hellwig
2023-12-31 20:07 ` [PATCH 2/5] xfs: implement live quotacheck inode scan Darrick J. Wong
2024-01-05 5:29 ` Christoph Hellwig
2024-01-06 1:16 ` Darrick J. Wong
2024-01-09 1:23 ` Darrick J. Wong
2024-01-09 4:35 ` Christoph Hellwig
2023-12-31 20:08 ` [PATCH 3/5] xfs: track quota updates during live quotacheck Darrick J. Wong
2024-01-05 5:30 ` Christoph Hellwig
2023-12-31 20:08 ` [PATCH 4/5] xfs: repair cannot update the summary counters when logging quota flags Darrick J. Wong
2024-01-05 5:35 ` Christoph Hellwig
2024-01-06 18:52 ` Darrick J. Wong
2023-12-31 20:08 ` [PATCH 5/5] xfs: repair dquots based on live quotacheck results Darrick J. Wong
2024-01-05 5:35 ` Christoph Hellwig
2023-12-31 19:26 ` [PATCHSET v29.0 04/28] xfs: online repair of file link counts Darrick J. Wong
2023-12-31 20:08 ` [PATCH 1/4] xfs: report health of inode " Darrick J. Wong
2024-01-05 5:39 ` Christoph Hellwig
2023-12-31 20:09 ` [PATCH 2/4] xfs: teach scrub to check file nlinks Darrick J. Wong
2024-01-05 5:40 ` Christoph Hellwig
2023-12-31 20:09 ` [PATCH 3/4] xfs: track directory entry updates during live nlinks fsck Darrick J. Wong
2024-01-05 5:41 ` Christoph Hellwig
2023-12-31 20:09 ` [PATCH 4/4] xfs: teach repair to fix file nlinks Darrick J. Wong
2024-01-05 5:42 ` Christoph Hellwig
2023-12-31 19:26 ` [PATCHSET v29.0 05/28] xfs: report corruption to the health trackers Darrick J. Wong
2023-12-31 20:09 ` [PATCH 01/11] xfs: separate the marking of sick and checked metadata Darrick J. Wong
2024-01-05 5:42 ` Christoph Hellwig
2023-12-31 20:10 ` [PATCH 02/11] xfs: report fs corruption errors to the health tracking system Darrick J. Wong
2024-01-05 5:42 ` Christoph Hellwig
2023-12-31 20:10 ` [PATCH 03/11] xfs: report ag header " Darrick J. Wong
2024-01-05 5:43 ` Christoph Hellwig
2023-12-31 20:10 ` [PATCH 04/11] xfs: report block map " Darrick J. Wong
2024-01-05 5:43 ` Christoph Hellwig
2023-12-31 20:10 ` [PATCH 05/11] xfs: report btree block corruption errors to the health system Darrick J. Wong
2024-01-05 5:43 ` Christoph Hellwig
2023-12-31 20:11 ` [PATCH 06/11] xfs: report dir/attr " Darrick J. Wong
2024-01-05 5:44 ` Christoph Hellwig
2023-12-31 20:11 ` [PATCH 07/11] xfs: report symlink " Darrick J. Wong
2024-01-05 5:44 ` Christoph Hellwig
2023-12-31 20:11 ` [PATCH 08/11] xfs: report inode " Darrick J. Wong
2024-01-05 5:44 ` Christoph Hellwig
2023-12-31 20:12 ` [PATCH 09/11] xfs: report quota block " Darrick J. Wong
2024-01-05 5:44 ` Christoph Hellwig
2023-12-31 20:12 ` [PATCH 10/11] xfs: report realtime metadata " Darrick J. Wong
2024-01-05 5:45 ` Christoph Hellwig
2023-12-31 20:12 ` [PATCH 11/11] xfs: report XFS_IS_CORRUPT " Darrick J. Wong
2024-01-05 5:45 ` Christoph Hellwig
2023-12-31 19:26 ` [PATCHSET v29.0 06/28] xfs: indirect health reporting Darrick J. Wong
2023-12-31 20:12 ` [PATCH 1/3] xfs: add secondary and indirect classes to the health tracking system Darrick J. Wong
2024-01-05 5:46 ` Christoph Hellwig
2023-12-31 20:13 ` [PATCH 2/3] xfs: remember sick inodes that get inactivated Darrick J. Wong
2024-01-05 5:46 ` Christoph Hellwig
2023-12-31 20:13 ` [PATCH 3/3] xfs: update health status if we get a clean bill of health Darrick J. Wong
2024-01-05 5:47 ` Christoph Hellwig
2023-12-31 19:27 ` [PATCHSET v29.0 07/28] xfs: online repair for fs summary counters Darrick J. Wong
2023-12-31 20:13 ` [PATCH 1/1] xfs: repair " Darrick J. Wong
2024-01-05 5:48 ` Christoph Hellwig
2023-12-31 19:27 ` [PATCHSET v29.0 08/28] xfs: support in-memory btrees Darrick J. Wong
2023-12-31 20:13 ` [PATCH 1/9] xfs: dump xfiles for debugging purposes Darrick J. Wong
2024-01-01 0:02 ` Matthew Wilcox
2024-01-03 1:52 ` Darrick J. Wong
2024-01-03 8:49 ` Christoph Hellwig
2023-12-31 20:14 ` [PATCH 2/9] xfs: teach buftargs to maintain their own buffer hashtable Darrick J. Wong
2023-12-31 20:14 ` [PATCH 3/9] xfs: create buftarg helpers to abstract block_device operations Darrick J. Wong
2024-01-03 8:51 ` Christoph Hellwig
2024-01-03 19:26 ` Darrick J. Wong
2024-01-03 19:32 ` Christoph Hellwig
2023-12-31 20:14 ` [PATCH 4/9] xfs: make GFP_ usage consistent when allocating buftargs Darrick J. Wong
2024-01-03 8:52 ` Christoph Hellwig
2023-12-31 20:14 ` [PATCH 5/9] xfs: support in-memory buffer cache targets Darrick J. Wong
2023-12-31 20:15 ` [PATCH 6/9] xfs: consolidate btree block freeing tracepoints Darrick J. Wong
2024-01-03 8:53 ` Christoph Hellwig
2024-01-03 19:37 ` Darrick J. Wong
2024-01-04 6:19 ` Christoph Hellwig
2024-01-04 7:15 ` Darrick J. Wong
2023-12-31 20:15 ` [PATCH 7/9] xfs: consolidate btree block allocation tracepoints Darrick J. Wong
2023-12-31 20:15 ` [PATCH 8/9] xfs: support in-memory btrees Darrick J. Wong
2024-01-04 6:47 ` Christoph Hellwig
2024-01-04 7:27 ` Darrick J. Wong
2024-01-04 7:30 ` Christoph Hellwig
2024-01-04 7:33 ` Darrick J. Wong
2024-01-04 7:40 ` Christoph Hellwig
2023-12-31 20:15 ` [PATCH 9/9] xfs: connect in-memory btrees to xfiles Darrick J. Wong
2024-01-01 0:18 ` Matthew Wilcox
2024-01-03 2:04 ` Darrick J. Wong
2024-01-04 6:54 ` Christoph Hellwig
2024-01-04 7:32 ` Darrick J. Wong
2024-01-04 7:41 ` Christoph Hellwig
2023-12-31 19:27 ` [PATCHSET v29.0 09/28] xfs: online repair of rmap btrees Darrick J. Wong
2023-12-31 20:16 ` [PATCH 1/4] xfs: create a helper to decide if a file mapping targets the rt volume Darrick J. Wong
2024-01-05 5:48 ` Christoph Hellwig
2023-12-31 20:16 ` [PATCH 2/4] xfs: repair the rmapbt Darrick J. Wong
2023-12-31 20:16 ` [PATCH 3/4] xfs: create a shadow rmap btree during rmap repair Darrick J. Wong
2023-12-31 20:16 ` [PATCH 4/4] xfs: hook live rmap operations during a repair operation Darrick J. Wong
2023-12-31 19:27 ` [PATCHSET v29.0 10/28] xfs: move btree geometry to ops struct Darrick J. Wong
2023-12-31 20:17 ` [PATCH 1/9] xfs: set the btree cursor bc_ops in xfs_btree_alloc_cursor Darrick J. Wong
2024-01-02 10:31 ` Christoph Hellwig
2023-12-31 20:17 ` [PATCH 2/9] xfs: encode the default bc_flags in the btree ops structure Darrick J. Wong
2024-01-02 10:33 ` Christoph Hellwig
2024-01-03 1:15 ` Darrick J. Wong
2024-01-03 19:58 ` Darrick J. Wong
2024-01-03 20:00 ` Darrick J. Wong
2024-01-03 20:35 ` Christoph Hellwig
2023-12-31 20:17 ` [PATCH 3/9] xfs: export some of the btree ops structures Darrick J. Wong
2024-01-02 10:36 ` Christoph Hellwig
2023-12-31 20:17 ` [PATCH 4/9] xfs: initialize btree blocks using btree_ops structure Darrick J. Wong
2024-01-02 10:36 ` Christoph Hellwig
2023-12-31 20:18 ` [PATCH 5/9] xfs: rename btree block/buffer init functions Darrick J. Wong
2024-01-02 10:37 ` Christoph Hellwig
2023-12-31 20:18 ` [PATCH 6/9] xfs: btree convert xfs_btree_init_block to xfs_btree_init_buf calls Darrick J. Wong
2024-01-02 10:37 ` Christoph Hellwig
2023-12-31 20:18 ` [PATCH 7/9] xfs: remove the unnecessary daddr paramter to _init_block Darrick J. Wong
2024-01-02 10:38 ` Christoph Hellwig
2023-12-31 20:19 ` [PATCH 8/9] xfs: set btree block buffer ops in _init_buf Darrick J. Wong
2024-01-02 10:38 ` Christoph Hellwig
2023-12-31 20:19 ` [PATCH 9/9] xfs: remove unnecessary fields in xfbtree_config Darrick J. Wong
2024-01-02 10:39 ` Christoph Hellwig
2024-01-03 2:51 ` Darrick J. Wong
2024-01-03 7:40 ` Christoph Hellwig
2023-12-31 19:28 ` [PATCHSET v29.0 11/28] xfs: reduce refcount repair memory usage Darrick J. Wong
2023-12-31 20:19 ` [PATCH 1/4] xfs: move lru refs to the btree ops structure Darrick J. Wong
2024-01-02 10:39 ` Christoph Hellwig
2023-12-31 20:19 ` [PATCH 2/4] xfs: define an in-memory btree for storing refcount bag info during repairs Darrick J. Wong
2024-01-02 10:41 ` Christoph Hellwig
2024-01-03 2:29 ` Darrick J. Wong
2023-12-31 20:20 ` [PATCH 3/4] xfs: create refcount bag structure for btree repairs Darrick J. Wong
2024-01-02 10:42 ` Christoph Hellwig
2023-12-31 20:20 ` [PATCH 4/4] xfs: port refcount repair to the new refcount bag structure Darrick J. Wong
2024-01-02 10:43 ` Christoph Hellwig
2024-01-03 2:31 ` Darrick J. Wong
2023-12-31 19:28 ` [PATCHSET v29.0 12/28] xfs: bmap log intent cleanups Darrick J. Wong
2023-12-31 20:20 ` [PATCH 1/7] xfs: split tracepoint classes for deferred items Darrick J. Wong
2024-01-02 10:44 ` Christoph Hellwig
2023-12-31 20:20 ` [PATCH 2/7] xfs: clean up bmap log intent item tracepoint callsites Darrick J. Wong
2024-01-02 10:44 ` Christoph Hellwig
2023-12-31 20:21 ` [PATCH 3/7] xfs: remove xfs_trans_set_bmap_flags Darrick J. Wong
2024-01-02 10:44 ` Christoph Hellwig
2023-12-31 20:21 ` [PATCH 4/7] xfs: add a bi_entry helper Darrick J. Wong
2024-01-02 10:44 ` Christoph Hellwig
2023-12-31 20:21 ` [PATCH 5/7] xfs: reuse xfs_bmap_update_cancel_item Darrick J. Wong
2024-01-02 10:45 ` Christoph Hellwig
2024-01-03 1:21 ` Darrick J. Wong
2023-12-31 20:21 ` [PATCH 6/7] xfs: move xfs_bmap_defer_add to xfs_bmap_item.c Darrick J. Wong
2024-01-02 10:45 ` Christoph Hellwig
2023-12-31 20:22 ` [PATCH 7/7] xfs: add a xattr_entry helper Darrick J. Wong
2024-01-02 10:45 ` Christoph Hellwig
2023-12-31 19:28 ` [PATCHSET v29.0 13/28] xfs: widen BUI formats to support realtime Darrick J. Wong
2023-12-31 20:22 ` [PATCH 1/3] xfs: fix xfs_bunmapi to allow unmapping of partial rt extents Darrick J. Wong
2024-01-02 10:46 ` Christoph Hellwig
2023-12-31 20:22 ` [PATCH 2/3] xfs: add a realtime flag to the bmap update log redo items Darrick J. Wong
2024-01-02 10:46 ` Christoph Hellwig
2023-12-31 20:22 ` [PATCH 3/3] xfs: support recovering bmap intent items targetting realtime extents Darrick J. Wong
2024-01-02 10:46 ` Christoph Hellwig
2023-12-31 19:29 ` [PATCHSET v29.0 14/28] xfs: support attrfork and unwritten BUIs Darrick J. Wong
2023-12-31 20:23 ` [PATCH 1/2] xfs: support deferred bmap updates on the attr fork Darrick J. Wong
2024-01-05 5:50 ` Christoph Hellwig
2023-12-31 20:23 ` [PATCH 2/2] xfs: xfs_bmap_finish_one should map unwritten extents properly Darrick J. Wong
2024-01-05 5:50 ` Christoph Hellwig
2023-12-31 19:29 ` [PATCHSET v29.0 15/28] xfs: clean up symbolic link code Darrick J. Wong
2023-12-31 20:23 ` [PATCH 1/3] xfs: move xfs_symlink_remote.c declarations to xfs_symlink_remote.h Darrick J. Wong
2024-01-05 5:51 ` Christoph Hellwig
2023-12-31 20:23 ` [PATCH 2/3] xfs: move remote symlink target read function to libxfs Darrick J. Wong
2024-01-05 5:51 ` Christoph Hellwig
2023-12-31 20:24 ` [PATCH 3/3] xfs: move symlink target write " Darrick J. Wong
2024-01-05 5:52 ` Christoph Hellwig
2023-12-31 19:29 ` [PATCHSET v29.0 16/28] xfs: atomic file updates Darrick J. Wong
2023-12-31 20:24 ` [PATCH 01/25] xfs: add a libxfs header file for staging new ioctls Darrick J. Wong
2023-12-31 20:24 ` [PATCH 02/25] xfs: introduce new file range exchange ioctl Darrick J. Wong
2023-12-31 20:25 ` [PATCH 03/25] xfs: move inode lease breaking functions to xfs_inode.c Darrick J. Wong
2023-12-31 20:25 ` [PATCH 04/25] xfs: move xfs_iops.c declarations out of xfs_inode.h Darrick J. Wong
2023-12-31 20:25 ` [PATCH 05/25] xfs: declare xfs_file.c symbols in xfs_file.h Darrick J. Wong
2023-12-31 20:25 ` [PATCH 06/25] xfs: create a new helper to return a file's allocation unit Darrick J. Wong
2023-12-31 20:26 ` [PATCH 07/25] xfs: refactor non-power-of-two alignment checks Darrick J. Wong
2023-12-31 20:26 ` [PATCH 08/25] xfs: parameterize all the incompat log feature helpers Darrick J. Wong
2023-12-31 20:26 ` [PATCH 09/25] xfs: create a log incompat flag for atomic extent swapping Darrick J. Wong
2023-12-31 20:26 ` [PATCH 10/25] xfs: introduce a swap-extent log intent item Darrick J. Wong
2023-12-31 20:27 ` [PATCH 11/25] xfs: create deferred log items for extent swapping Darrick J. Wong
2023-12-31 20:27 ` [PATCH 12/25] xfs: enable xlog users to toggle atomic " Darrick J. Wong
2023-12-31 20:27 ` [PATCH 13/25] xfs: bind the xfs-specific extent swap code to the vfs-generic file exchange code Darrick J. Wong
2023-12-31 20:27 ` [PATCH 14/25] xfs: add error injection to test swapext recovery Darrick J. Wong
2023-12-31 20:28 ` [PATCH 15/25] xfs: port xfs_swap_extents_rmap to our new code Darrick J. Wong
2023-12-31 20:28 ` [PATCH 16/25] xfs: consolidate all of the xfs_swap_extent_forks code Darrick J. Wong
2023-12-31 20:28 ` [PATCH 17/25] xfs: port xfs_swap_extent_forks to use xfs_swapext_req Darrick J. Wong
2023-12-31 20:28 ` [PATCH 18/25] xfs: allow xfs_swap_range to use older extent swap algorithms Darrick J. Wong
2023-12-31 20:29 ` [PATCH 19/25] xfs: remove old swap extents implementation Darrick J. Wong
2023-12-31 20:29 ` [PATCH 20/25] xfs: condense extended attributes after an atomic swap Darrick J. Wong
2023-12-31 20:29 ` [PATCH 21/25] xfs: condense directories " Darrick J. Wong
2023-12-31 20:29 ` [PATCH 22/25] xfs: condense symbolic links " Darrick J. Wong
2023-12-31 20:30 ` [PATCH 23/25] xfs: make atomic extent swapping support realtime files Darrick J. Wong
2023-12-31 20:30 ` [PATCH 24/25] xfs: support non-power-of-two rtextsize with exchange-range Darrick J. Wong
2023-12-31 20:30 ` [PATCH 25/25] xfs: enable atomic swapext feature Darrick J. Wong
2023-12-31 19:29 ` [PATCHSET v29.0 17/28] xfs: create temporary files for online repair Darrick J. Wong
2023-12-31 20:31 ` [PATCH 1/4] xfs: hide private inodes from bulkstat and handle functions Darrick J. Wong
2023-12-31 20:31 ` [PATCH 2/4] xfs: create temporary files and directories for online repair Darrick J. Wong
2023-12-31 20:31 ` [PATCH 3/4] xfs: refactor live buffer invalidation for repairs Darrick J. Wong
2023-12-31 20:31 ` [PATCH 4/4] xfs: add the ability to reap entire inode forks Darrick J. Wong
2023-12-31 19:30 ` [PATCHSET v29.0 18/28] xfs: online repair of realtime summaries Darrick J. Wong
2023-12-31 20:32 ` [PATCH 1/3] xfs: support preallocating and copying content into temporary files Darrick J. Wong
2023-12-31 20:32 ` [PATCH 2/3] xfs: teach the tempfile to support atomic extent swapping Darrick J. Wong
2023-12-31 20:32 ` [PATCH 3/3] xfs: online repair of realtime summaries Darrick J. Wong
2023-12-31 19:30 ` [PATCHSET v29.0 19/28] xfs: set and validate dir/attr block owners Darrick J. Wong
2023-12-31 20:32 ` [PATCH 1/9] xfs: add an explicit owner field to xfs_da_args Darrick J. Wong
2023-12-31 20:33 ` [PATCH 2/9] xfs: use the xfs_da_args owner field to set new dir/attr block owner Darrick J. Wong
2023-12-31 20:33 ` [PATCH 3/9] xfs: validate attr leaf buffer owners Darrick J. Wong
2023-12-31 20:33 ` [PATCH 4/9] xfs: validate attr remote value " Darrick J. Wong
2023-12-31 20:33 ` [PATCH 5/9] xfs: validate dabtree node " Darrick J. Wong
2023-12-31 20:34 ` [PATCH 6/9] xfs: validate directory leaf " Darrick J. Wong
2023-12-31 20:34 ` [PATCH 7/9] xfs: validate explicit directory data " Darrick J. Wong
2023-12-31 20:34 ` [PATCH 8/9] xfs: validate explicit directory block " Darrick J. Wong
2023-12-31 20:34 ` [PATCH 9/9] xfs: validate explicit directory free block owners Darrick J. Wong
2023-12-31 19:30 ` [PATCHSET v29.0 20/28] xfs: online repair of extended attributes Darrick J. Wong
2023-12-31 20:35 ` [PATCH 1/6] xfs: create a blob array data structure Darrick J. Wong
2024-01-05 5:53 ` Christoph Hellwig
2024-01-06 1:33 ` Darrick J. Wong
2024-01-06 6:42 ` Christoph Hellwig
2024-01-06 18:55 ` Darrick J. Wong
2024-01-08 17:12 ` Darrick J. Wong
2023-12-31 20:35 ` [PATCH 2/6] xfs: use atomic extent swapping to fix user file fork data Darrick J. Wong
2023-12-31 20:35 ` [PATCH 3/6] xfs: repair extended attributes Darrick J. Wong
2023-12-31 20:35 ` [PATCH 4/6] xfs: scrub should set preen if attr leaf has holes Darrick J. Wong
2023-12-31 20:36 ` [PATCH 5/6] xfs: flag empty xattr leaf blocks for optimization Darrick J. Wong
2023-12-31 20:36 ` [PATCH 6/6] xfs: create an xattr iteration function for scrub Darrick J. Wong
2023-12-31 19:30 ` [PATCHSET v29.0 21/28] xfs: online repair of inode unlinked state Darrick J. Wong
2023-12-31 20:36 ` [PATCH 1/2] xfs: ensure unlinked list state is consistent with nlink during scrub Darrick J. Wong
2023-12-31 20:37 ` [PATCH 2/2] xfs: update the unlinked list when repairing link counts Darrick J. Wong
2023-12-31 19:31 ` [PATCHSET v29.0 22/28] xfs: online repair of directories Darrick J. Wong
2023-12-31 20:37 ` [PATCH 1/4] " Darrick J. Wong
2023-12-31 20:37 ` [PATCH 2/4] xfs: scan the filesystem to repair a directory dotdot entry Darrick J. Wong
2023-12-31 20:37 ` [PATCH 3/4] xfs: online repair of parent pointers Darrick J. Wong
2023-12-31 20:38 ` [PATCH 4/4] xfs: ask the dentry cache if it knows the parent of a directory Darrick J. Wong
2023-12-31 19:31 ` [PATCHSET v29.0 23/28] xfs: move orphan files to lost and found Darrick J. Wong
2023-12-31 20:38 ` [PATCH 1/3] xfs: move orphan files to the orphanage Darrick J. Wong
2023-12-31 20:38 ` [PATCH 2/3] xfs: move files to orphanage instead of letting nlinks drop to zero Darrick J. Wong
2023-12-31 20:38 ` [PATCH 3/3] xfs: ensure dentry consistency when the orphanage adopts a file Darrick J. Wong
2023-12-31 19:31 ` [PATCHSET v29.0 24/28] xfs: online repair of symbolic links Darrick J. Wong
2023-12-31 20:39 ` [PATCH 1/1] " Darrick J. Wong
2023-12-31 19:31 ` [PATCHSET v29.0 25/28] xfs: online fsck of iunlink buckets Darrick J. Wong
2023-12-31 20:39 ` [PATCH 1/3] xfs: check AGI unlinked inode buckets Darrick J. Wong
2023-12-31 20:39 ` [PATCH 2/3] xfs: hoist AGI repair context to a heap object Darrick J. Wong
2023-12-31 20:39 ` [PATCH 3/3] xfs: repair AGI unlinked inode bucket lists Darrick J. Wong
2023-12-31 19:32 ` [PATCHSET v29.0 26/28] xfs: cache xfile pages for better performance Darrick J. Wong
2023-12-31 20:40 ` Darrick J. Wong [this message]
2023-12-31 20:40 ` [PATCH 2/3] xfs: use b_offset to support direct-mapping pages when blocksize < pagesize Darrick J. Wong
2024-01-03 8:45 ` Christoph Hellwig
2024-01-04 1:27 ` Darrick J. Wong
2023-12-31 20:40 ` [PATCH 3/3] xfile: implement write caching Darrick J. Wong
2024-01-03 8:48 ` Christoph Hellwig
2024-01-04 1:33 ` Darrick J. Wong
2024-01-04 6:20 ` Christoph Hellwig
2024-01-04 7:20 ` Darrick J. Wong
2024-01-04 7:28 ` Christoph Hellwig
2024-01-04 7:34 ` Darrick J. Wong
2024-01-04 7:39 ` Christoph Hellwig
2024-01-04 17:59 ` Darrick J. Wong
2023-12-31 19:32 ` [PATCHSET v29.0 27/28] xfs: inode-related repair fixes Darrick J. Wong
2023-12-31 20:40 ` [PATCH 1/4] xfs: check unused nlink fields in the ondisk inode Darrick J. Wong
2023-12-31 20:41 ` [PATCH 2/4] xfs: try to avoid allocating from sick inode clusters Darrick J. Wong
2023-12-31 20:41 ` [PATCH 3/4] xfs: pin inodes that would otherwise overflow link count Darrick J. Wong
2023-12-31 20:41 ` [PATCH 4/4] xfs: create subordinate scrub contexts for xchk_metadata_inode_subtype Darrick J. Wong
2023-12-31 19:32 ` [PATCHSET v29.0 28/28] xfs: less heavy locks during fstrim Darrick J. Wong
2023-12-31 20:41 ` [PATCH 1/1] xfs: fix severe performance problems when fstrimming a subset of an AG Darrick J. Wong
2023-12-31 19:39 ` [PATCHSET v29.0 01/40] xfs_scrub: fix licensing and copyright notices Darrick J. Wong
2023-12-31 22:04 ` [PATCH 1/3] xfs_scrub: fix author and spdx headers on scrub/ files Darrick J. Wong
2024-01-05 4:49 ` Christoph Hellwig
2023-12-31 22:04 ` [PATCH 2/3] xfs_scrub: add missing license and copyright information Darrick J. Wong
2024-01-05 4:50 ` Christoph Hellwig
2024-01-06 0:34 ` Darrick J. Wong
2023-12-31 22:04 ` [PATCH 3/3] xfs_scrub: update copyright years for scrub/ files Darrick J. Wong
2024-01-05 4:50 ` Christoph Hellwig
2023-12-31 19:40 ` [PATCHSET 02/40] mkfs: scale shards on ssds Darrick J. Wong
2023-12-31 22:04 ` [PATCH 1/2] mkfs: allow sizing allocation groups for concurrency Darrick J. Wong
2024-01-05 4:51 ` Christoph Hellwig
2023-12-31 22:05 ` [PATCH 2/2] mkfs: allow sizing internal logs " Darrick J. Wong
2024-01-05 4:52 ` Christoph Hellwig
2023-12-31 19:40 ` [PATCHSET v29.0 03/40] xfs_scrub: scan metadata files in parallel Darrick J. Wong
2023-12-31 22:05 ` [PATCH 1/3] libfrog: rename XFROG_SCRUB_TYPE_* to XFROG_SCRUB_GROUP_* Darrick J. Wong
2024-01-05 4:52 ` Christoph Hellwig
2023-12-31 22:05 ` [PATCH 2/3] libfrog: promote XFROG_SCRUB_DESCR_SUMMARY to a scrub type Darrick J. Wong
2024-01-05 4:53 ` Christoph Hellwig
2023-12-31 22:05 ` [PATCH 3/3] xfs_scrub: scan whole-fs metadata files in parallel Darrick J. Wong
2024-01-05 4:53 ` Christoph Hellwig
2023-12-31 19:40 ` [PATCHSET v29.0 04/40] xfs: repair inode mode by scanning dirs Darrick J. Wong
2023-12-31 22:06 ` [PATCH 1/3] xfs: create a static name for the dot entry too Darrick J. Wong
2023-12-31 22:06 ` [PATCH 2/3] xfs: create a predicate to determine if two xfs_names are the same Darrick J. Wong
2023-12-31 22:06 ` [PATCH 3/3] xfs: create a macro for decoding ftypes in tracepoints Darrick J. Wong
2023-12-31 19:40 ` [PATCHSET v29.0 05/40] xfsprogs: online repair of quota counters Darrick J. Wong
2023-12-31 22:06 ` [PATCH 1/3] xfs: report the health of quota counts Darrick J. Wong
2023-12-31 22:07 ` [PATCH 2/3] libfrog: create a new scrub group for things requiring full inode scans Darrick J. Wong
2023-12-31 22:07 ` [PATCH 3/3] xfs: implement live quotacheck inode scan Darrick J. Wong
2023-12-31 19:41 ` [PATCHSET v29.0 06/40] xfs_repair: rebuild inode fork mappings Darrick J. Wong
2023-12-31 22:07 ` [PATCH 1/3] xfs_repair: push inode buf and dinode pointers all the way to inode fork processing Darrick J. Wong
2023-12-31 22:08 ` [PATCH 2/3] xfs_repair: sync bulkload data structures with kernel newbt code Darrick J. Wong
2023-12-31 22:08 ` [PATCH 3/3] xfs_repair: rebuild block mappings from rmapbt data Darrick J. Wong
2023-12-31 19:41 ` [PATCHSET 07/40] xfs_repair: support more than 4 billion records Darrick J. Wong
2023-12-31 22:08 ` [PATCH 1/8] xfs_db: add a bmbt inflation command Darrick J. Wong
2023-12-31 22:08 ` [PATCH 2/8] xfs_repair: slab and bag structs need to track more than 2^32 items Darrick J. Wong
2023-12-31 22:09 ` [PATCH 3/8] xfs_repair: support more than 2^32 rmapbt records per AG Darrick J. Wong
2023-12-31 22:09 ` [PATCH 4/8] xfs_repair: support more than 2^32 owners per physical block Darrick J. Wong
2023-12-31 22:09 ` [PATCH 5/8] xfs_repair: clean up lock resources Darrick J. Wong
2023-12-31 22:09 ` [PATCH 6/8] xfs_repair: constrain attr fork extent count Darrick J. Wong
2023-12-31 22:10 ` [PATCH 7/8] xfs_repair: don't create block maps for data files Darrick J. Wong
2023-12-31 22:10 ` [PATCH 8/8] xfs_repair: support more than INT_MAX block maps Darrick J. Wong
2023-12-31 19:41 ` [PATCHSET v29.0 08/40] xfsprogs: online repair of file link counts Darrick J. Wong
2023-12-31 22:10 ` [PATCH 1/3] xfs: report health of inode " Darrick J. Wong
2023-12-31 22:10 ` [PATCH 2/3] xfs: teach scrub to check file nlinks Darrick J. Wong
2023-12-31 22:11 ` [PATCH 3/3] xfs_scrub: use multiple threads to run in-kernel metadata scrubs that scan inodes Darrick J. Wong
2023-12-31 19:42 ` [PATCHSET v29.0 09/40] xfsprogs: report corruption to the health trackers Darrick J. Wong
2023-12-31 22:11 ` [PATCH 1/9] xfs: separate the marking of sick and checked metadata Darrick J. Wong
2023-12-31 22:11 ` [PATCH 2/9] xfs: report fs corruption errors to the health tracking system Darrick J. Wong
2023-12-31 22:11 ` [PATCH 3/9] xfs: report ag header " Darrick J. Wong
2023-12-31 22:12 ` [PATCH 4/9] xfs: report block map " Darrick J. Wong
2023-12-31 22:12 ` [PATCH 5/9] xfs: report btree block corruption errors to the health system Darrick J. Wong
2023-12-31 22:12 ` [PATCH 6/9] xfs: report dir/attr " Darrick J. Wong
2023-12-31 22:12 ` [PATCH 7/9] xfs: report inode " Darrick J. Wong
2023-12-31 22:13 ` [PATCH 8/9] xfs: report realtime metadata " Darrick J. Wong
2023-12-31 22:13 ` [PATCH 9/9] xfs: report XFS_IS_CORRUPT " Darrick J. Wong
2023-12-31 19:42 ` [PATCHSET v29.0 10/40] xfsprogs: indirect health reporting Darrick J. Wong
2023-12-31 22:13 ` [PATCH 1/4] xfs: add secondary and indirect classes to the health tracking system Darrick J. Wong
2023-12-31 22:14 ` [PATCH 2/4] xfs: remember sick inodes that get inactivated Darrick J. Wong
2023-12-31 22:14 ` [PATCH 3/4] xfs: update health status if we get a clean bill of health Darrick J. Wong
2023-12-31 22:14 ` [PATCH 4/4] xfs_scrub: upload clean bills " Darrick J. Wong
2023-12-31 19:42 ` [PATCHSET v29.0 11/40] xfsprogs: support in-memory btrees Darrick J. Wong
2023-12-31 22:14 ` [PATCH 01/10] libxfs: clean up xfs_da_unmount usage Darrick J. Wong
2023-12-31 22:15 ` [PATCH 02/10] libxfs: teach buftargs to maintain their own buffer hashtable Darrick J. Wong
2023-12-31 22:15 ` [PATCH 03/10] libxfs: add xfile support Darrick J. Wong
2023-12-31 22:15 ` [PATCH 04/10] xfs: teach buftargs to maintain their own buffer hashtable Darrick J. Wong
2023-12-31 22:15 ` [PATCH 05/10] libxfs: support in-memory buffer cache targets Darrick J. Wong
2023-12-31 22:16 ` [PATCH 06/10] xfs: consolidate btree block freeing tracepoints Darrick J. Wong
2023-12-31 22:16 ` [PATCH 07/10] xfs: consolidate btree block allocation tracepoints Darrick J. Wong
2023-12-31 22:16 ` [PATCH 08/10] xfs: support in-memory btrees Darrick J. Wong
2023-12-31 22:16 ` [PATCH 09/10] xfs: connect in-memory btrees to xfiles Darrick J. Wong
2023-12-31 22:17 ` [PATCH 10/10] xfbtree: let the buffer cache flush dirty buffers to the xfile Darrick J. Wong
2023-12-31 19:42 ` [PATCHSET v29.0 12/40] xfsprogs: online repair of rmap btrees Darrick J. Wong
2023-12-31 22:17 ` [PATCH 1/4] xfs: create a helper to decide if a file mapping targets the rt volume Darrick J. Wong
2023-12-31 22:17 ` [PATCH 2/4] xfs: repair the rmapbt Darrick J. Wong
2023-12-31 22:17 ` [PATCH 3/4] xfs: create a shadow rmap btree during rmap repair Darrick J. Wong
2023-12-31 22:18 ` [PATCH 4/4] xfs: hook live rmap operations during a repair operation Darrick J. Wong
2023-12-31 19:43 ` [PATCHSET v29.0 13/40] xfs_repair: use in-memory rmap btrees Darrick J. Wong
2023-12-31 22:18 ` [PATCH 1/6] libxfs: partition memfd files to avoid using too many fds Darrick J. Wong
2023-12-31 22:18 ` [PATCH 2/6] xfs_repair: convert regular rmap repair to use in-memory btrees Darrick J. Wong
2023-12-31 22:18 ` [PATCH 3/6] xfs_repair: verify on-disk rmap btrees with in-memory btree data Darrick J. Wong
2023-12-31 22:19 ` [PATCH 4/6] xfs_repair: compute refcount data from in-memory rmap btrees Darrick J. Wong
2023-12-31 22:19 ` [PATCH 5/6] xfs_repair: reduce rmap bag memory usage when creating refcounts Darrick J. Wong
2023-12-31 22:19 ` [PATCH 6/6] xfs_repair: remove the old rmap collection slabs Darrick J. Wong
2023-12-31 19:43 ` [PATCHSET v29.0 14/40] xfsprogs: move btree geometry to ops struct Darrick J. Wong
2023-12-31 22:20 ` [PATCH 1/9] xfs: set the btree cursor bc_ops in xfs_btree_alloc_cursor Darrick J. Wong
2023-12-31 22:20 ` [PATCH 2/9] xfs: encode the default bc_flags in the btree ops structure Darrick J. Wong
2023-12-31 22:20 ` [PATCH 3/9] xfs: export some of the btree ops structures Darrick J. Wong
2023-12-31 22:20 ` [PATCH 4/9] xfs: initialize btree blocks using btree_ops structure Darrick J. Wong
2023-12-31 22:21 ` [PATCH 5/9] xfs: rename btree block/buffer init functions Darrick J. Wong
2023-12-31 22:21 ` [PATCH 6/9] xfs: btree convert xfs_btree_init_block to xfs_btree_init_buf calls Darrick J. Wong
2023-12-31 22:21 ` [PATCH 7/9] xfs: remove the unnecessary daddr paramter to _init_block Darrick J. Wong
2023-12-31 22:21 ` [PATCH 8/9] xfs: set btree block buffer ops in _init_buf Darrick J. Wong
2023-12-31 22:22 ` [PATCH 9/9] xfs: remove unnecessary fields in xfbtree_config Darrick J. Wong
2023-12-31 19:43 ` [PATCHSET v29.0 15/40] xfs_repair: reduce refcount repair memory usage Darrick J. Wong
2023-12-31 22:22 ` [PATCH 1/6] xfs: move lru refs to the btree ops structure Darrick J. Wong
2023-12-31 22:22 ` [PATCH 2/6] xfs: define an in-memory btree for storing refcount bag info during repairs Darrick J. Wong
2023-12-31 22:22 ` [PATCH 3/6] xfs_repair: define an in-memory btree for storing refcount bag info Darrick J. Wong
2023-12-31 22:23 ` [PATCH 4/6] xfs_repair: create refcount bag Darrick J. Wong
2023-12-31 22:23 ` [PATCH 5/6] xfs_repair: port to the new refcount bag structure Darrick J. Wong
2023-12-31 22:23 ` [PATCH 6/6] xfs_repair: remove the old bag implementation Darrick J. Wong
2023-12-31 19:43 ` [PATCHSET v29.0 16/40] xfsprogs: bmap log intent cleanups Darrick J. Wong
2023-12-31 22:23 ` [PATCH 1/5] xfs: clean up bmap log intent item tracepoint callsites Darrick J. Wong
2023-12-31 22:24 ` [PATCH 2/5] xfs: add a bi_entry helper Darrick J. Wong
2023-12-31 22:24 ` [PATCH 3/5] xfs: reuse xfs_bmap_update_cancel_item Darrick J. Wong
2023-12-31 22:24 ` [PATCH 4/5] xfs: move xfs_bmap_defer_add to xfs_bmap_item.c Darrick J. Wong
2023-12-31 22:24 ` [PATCH 5/5] xfs: add a xattr_entry helper Darrick J. Wong
2023-12-31 19:44 ` [PATCHSET v29.0 17/40] xfsprogs: widen BUI formats to support realtime Darrick J. Wong
2023-12-31 22:25 ` [PATCH 1/2] xfs: fix xfs_bunmapi to allow unmapping of partial rt extents Darrick J. Wong
2023-12-31 22:25 ` [PATCH 2/2] xfs: add a realtime flag to the bmap update log redo items Darrick J. Wong
2023-12-31 19:44 ` [PATCHSET v29.0 18/40] xfsprogs: support attrfork and unwritten BUIs Darrick J. Wong
2023-12-31 22:25 ` [PATCH 1/2] xfs: support deferred bmap updates on the attr fork Darrick J. Wong
2023-12-31 22:26 ` [PATCH 2/2] xfs: xfs_bmap_finish_one should map unwritten extents properly Darrick J. Wong
2023-12-31 19:44 ` [PATCHSET v29.0 19/40] xfsprogs: clean up symbolic link code Darrick J. Wong
2023-12-31 22:26 ` [PATCH 1/4] xfs: move xfs_symlink_remote.c declarations to xfs_symlink_remote.h Darrick J. Wong
2023-12-31 22:26 ` [PATCH 2/4] xfs: move remote symlink target read function to libxfs Darrick J. Wong
2023-12-31 22:26 ` [PATCH 3/4] xfs: move symlink target write " Darrick J. Wong
2023-12-31 22:27 ` [PATCH 4/4] mkfs: use libxfs to create symlinks Darrick J. Wong
2023-12-31 19:44 ` [PATCHSET v29.0 20/40] xfsprogs: atomic file updates Darrick J. Wong
2023-12-31 22:27 ` [PATCH 01/20] xfs: add a libxfs header file for staging new ioctls Darrick J. Wong
2023-12-31 22:27 ` [PATCH 02/20] xfs: introduce new file range exchange ioctl Darrick J. Wong
2023-12-31 22:27 ` [PATCH 03/20] xfs: parameterize all the incompat log feature helpers Darrick J. Wong
2023-12-31 22:28 ` [PATCH 04/20] xfs: create a log incompat flag for atomic extent swapping Darrick J. Wong
2023-12-31 22:28 ` [PATCH 05/20] xfs: introduce a swap-extent log intent item Darrick J. Wong
2023-12-31 22:28 ` [PATCH 06/20] xfs: create deferred log items for extent swapping Darrick J. Wong
2023-12-31 22:28 ` [PATCH 07/20] xfs: add error injection to test swapext recovery Darrick J. Wong
2023-12-31 22:29 ` [PATCH 08/20] xfs: condense extended attributes after an atomic swap Darrick J. Wong
2023-12-31 22:29 ` [PATCH 09/20] xfs: condense directories " Darrick J. Wong
2023-12-31 22:29 ` [PATCH 10/20] xfs: condense symbolic links " Darrick J. Wong
2023-12-31 22:29 ` [PATCH 11/20] xfs: make atomic extent swapping support realtime files Darrick J. Wong
2023-12-31 22:30 ` [PATCH 12/20] xfs: enable atomic swapext feature Darrick J. Wong
2023-12-31 22:30 ` [PATCH 13/20] libhandle: add support for bulkstat v5 Darrick J. Wong
2023-12-31 22:30 ` [PATCH 14/20] libfrog: convert xfs_io swapext command to use new libfrog wrapper Darrick J. Wong
2023-12-31 22:30 ` [PATCH 15/20] xfs_logprint: support dumping swapext log items Darrick J. Wong
2023-12-31 22:31 ` [PATCH 16/20] xfs_fsr: convert to bulkstat v5 ioctls Darrick J. Wong
2023-12-31 22:31 ` [PATCH 17/20] xfs_fsr: port to new swapext library function Darrick J. Wong
2023-12-31 22:31 ` [PATCH 18/20] xfs_fsr: skip the xattr/forkoff levering with the newer swapext implementations Darrick J. Wong
2023-12-31 22:32 ` [PATCH 19/20] xfs_io: enhance swapext to take advantage of new api Darrick J. Wong
2023-12-31 22:32 ` [PATCH 20/20] xfs_io: add atomic update commands to exercise extent swapping Darrick J. Wong
2023-12-31 19:45 ` [PATCHSET v29.0 21/40] xfsprogs: set and validate dir/attr block owners Darrick J. Wong
2023-12-31 22:32 ` [PATCH 1/9] xfs: add an explicit owner field to xfs_da_args Darrick J. Wong
2023-12-31 22:32 ` [PATCH 2/9] xfs: use the xfs_da_args owner field to set new dir/attr block owner Darrick J. Wong
2023-12-31 22:33 ` [PATCH 3/9] xfs: validate attr leaf buffer owners Darrick J. Wong
2023-12-31 22:33 ` [PATCH 4/9] xfs: validate attr remote value " Darrick J. Wong
2023-12-31 22:33 ` [PATCH 5/9] xfs: validate dabtree node " Darrick J. Wong
2023-12-31 22:33 ` [PATCH 6/9] xfs: validate directory leaf " Darrick J. Wong
2023-12-31 22:34 ` [PATCH 7/9] xfs: validate explicit directory data " Darrick J. Wong
2023-12-31 22:34 ` [PATCH 8/9] xfs: validate explicit directory block " Darrick J. Wong
2023-12-31 22:34 ` [PATCH 9/9] xfs: validate explicit directory free block owners Darrick J. Wong
2023-12-31 19:45 ` [PATCHSET v29.0 22/40] xfsprogs: online repair of extended attributes Darrick J. Wong
2023-12-31 22:34 ` [PATCH 1/1] xfs: repair " Darrick J. Wong
2023-12-31 19:45 ` [PATCHSET v29.0 23/40] xfsprogs: online repair of symbolic links Darrick J. Wong
2023-12-31 22:35 ` [PATCH 1/1] xfs: " Darrick J. Wong
2023-12-31 19:45 ` [PATCHSET v29.0 24/40] libxfs: cache xfile pages for better performance Darrick J. Wong
2023-12-31 22:35 ` [PATCH 1/1] xfs: map xfile pages directly into xfs_buf Darrick J. Wong
2024-01-03 8:24 ` Christoph Hellwig
2024-01-03 8:44 ` Christoph Hellwig
2023-12-31 19:46 ` [PATCHSET v29.0 25/40] xfsprogs: inode-related repair fixes Darrick J. Wong
2023-12-31 22:35 ` [PATCH 1/4] xfs: check unused nlink fields in the ondisk inode Darrick J. Wong
2023-12-31 22:35 ` [PATCH 2/4] xfs: try to avoid allocating from sick inode clusters Darrick J. Wong
2023-12-31 22:36 ` [PATCH 3/4] libxfs: port the bumplink function from the kernel Darrick J. Wong
2023-12-31 22:36 ` [PATCH 4/4] xfs: pin inodes that would otherwise overflow link count Darrick J. Wong
2023-12-31 19:46 ` [PATCHSET v29.0 26/40] xfs_scrub: fixes to the repair code Darrick J. Wong
2023-12-31 22:36 ` [PATCH 1/7] xfs_scrub: flush stdout after printing to it Darrick J. Wong
2024-01-05 4:55 ` Christoph Hellwig
2023-12-31 22:36 ` [PATCH 2/7] xfs_scrub: don't report media errors for space with unknowable owner Darrick J. Wong
2024-01-05 4:56 ` Christoph Hellwig
2023-12-31 22:37 ` [PATCH 3/7] xfs_scrub: remove ALP_* flags namespace Darrick J. Wong
2024-01-05 4:56 ` Christoph Hellwig
2023-12-31 22:37 ` [PATCH 4/7] xfs_scrub: move repair functions to repair.c Darrick J. Wong
2024-01-05 4:56 ` Christoph Hellwig
2023-12-31 22:37 ` [PATCH 5/7] xfs_scrub: log when a repair was unnecessary Darrick J. Wong
2024-01-05 4:57 ` Christoph Hellwig
2023-12-31 22:38 ` [PATCH 6/7] xfs_scrub: require primary superblock repairs to complete before proceeding Darrick J. Wong
2024-01-05 4:57 ` Christoph Hellwig
2023-12-31 22:38 ` [PATCH 7/7] xfs_scrub: actually try to fix summary counters ahead of repairs Darrick J. Wong
2024-01-05 4:57 ` Christoph Hellwig
2023-12-31 19:46 ` [PATCHSET v29.0 27/40] xfs_scrub: improve warnings about difficult repairs Darrick J. Wong
2023-12-31 22:38 ` [PATCH 1/8] xfs_scrub: fix missing scrub coverage for broken inodes Darrick J. Wong
2024-01-05 4:58 ` Christoph Hellwig
2023-12-31 22:38 ` [PATCH 2/8] xfs_scrub: collapse trivial superblock scrub helpers Darrick J. Wong
2024-01-05 4:58 ` Christoph Hellwig
2023-12-31 22:39 ` [PATCH 3/8] xfs_scrub: get rid of trivial fs metadata scanner helpers Darrick J. Wong
2024-01-05 4:58 ` Christoph Hellwig
2023-12-31 22:39 ` [PATCH 4/8] xfs_scrub: split up the mustfix repairs and difficulty assessment functions Darrick J. Wong
2024-01-05 4:59 ` Christoph Hellwig
2023-12-31 22:39 ` [PATCH 5/8] xfs_scrub: add missing repair types to the mustfix and difficulty assessment Darrick J. Wong
2024-01-05 4:59 ` Christoph Hellwig
2023-12-31 22:39 ` [PATCH 6/8] xfs_scrub: any inconsistency in metadata should trigger difficulty warnings Darrick J. Wong
2024-01-05 4:59 ` Christoph Hellwig
2023-12-31 22:40 ` [PATCH 7/8] xfs_scrub: warn about difficult repairs to rt and quota metadata Darrick J. Wong
2024-01-05 5:00 ` Christoph Hellwig
2023-12-31 22:40 ` [PATCH 8/8] xfs_scrub: enable users to bump information messages to warnings Darrick J. Wong
2024-01-05 5:00 ` Christoph Hellwig
2023-12-31 19:46 ` [PATCHSET v29.0 28/40] xfs_scrub: track data dependencies for repairs Darrick J. Wong
2023-12-31 22:40 ` [PATCH 1/9] xfs_scrub: track repair items by principal, not by individual repairs Darrick J. Wong
2024-01-05 5:01 ` Christoph Hellwig
2023-12-31 22:40 ` [PATCH 2/9] xfs_scrub: use repair_item to direct repair activities Darrick J. Wong
2024-01-05 5:01 ` Christoph Hellwig
2023-12-31 22:41 ` [PATCH 3/9] xfs_scrub: remove action lists from phaseX code Darrick J. Wong
2024-01-05 5:02 ` Christoph Hellwig
2023-12-31 22:41 ` [PATCH 4/9] xfs_scrub: remove scrub_metadata_file Darrick J. Wong
2024-01-05 5:02 ` Christoph Hellwig
2023-12-31 22:41 ` [PATCH 5/9] xfs_scrub: boost the repair priority of dependencies of damaged items Darrick J. Wong
2024-01-05 5:02 ` Christoph Hellwig
2023-12-31 22:41 ` [PATCH 6/9] xfs_scrub: clean up repair_item_difficulty a little Darrick J. Wong
2024-01-05 5:03 ` Christoph Hellwig
2023-12-31 22:42 ` [PATCH 7/9] xfs_scrub: check dependencies of a scrub type before repairing Darrick J. Wong
2024-01-05 5:03 ` Christoph Hellwig
2023-12-31 22:42 ` [PATCH 8/9] xfs_scrub: retry incomplete repairs Darrick J. Wong
2024-01-05 5:03 ` Christoph Hellwig
2023-12-31 22:42 ` [PATCH 9/9] xfs_scrub: remove unused action_list fields Darrick J. Wong
2024-01-05 5:04 ` Christoph Hellwig
2023-12-31 19:47 ` [PATCHSET v29.0 29/40] xfs_scrub: use scrub_item to track check progress Darrick J. Wong
2023-12-31 22:42 ` [PATCH 1/5] xfs_scrub: start tracking scrub state in scrub_item Darrick J. Wong
2024-01-05 5:04 ` Christoph Hellwig
2023-12-31 22:43 ` [PATCH 2/5] xfs_scrub: remove enum check_outcome Darrick J. Wong
2024-01-05 5:05 ` Christoph Hellwig
2023-12-31 22:43 ` [PATCH 3/5] xfs_scrub: refactor scrub_meta_type out of existence Darrick J. Wong
2024-01-05 5:05 ` Christoph Hellwig
2023-12-31 22:43 ` [PATCH 4/5] xfs_scrub: hoist repair retry loop to repair_item_class Darrick J. Wong
2024-01-05 5:05 ` Christoph Hellwig
2023-12-31 22:44 ` [PATCH 5/5] xfs_scrub: hoist scrub retry loop to scrub_item_check_file Darrick J. Wong
2024-01-05 5:06 ` Christoph Hellwig
2023-12-31 19:47 ` [PATCHSET v29.0 30/40] xfs_scrub: improve scheduling of repair items Darrick J. Wong
2023-12-31 22:44 ` [PATCH 1/4] libfrog: enhance ptvar to support initializer functions Darrick J. Wong
2024-01-05 5:08 ` Christoph Hellwig
2023-12-31 22:44 ` [PATCH 2/4] xfs_scrub: improve thread scheduling repair items during phase 4 Darrick J. Wong
2024-01-05 5:08 ` Christoph Hellwig
2023-12-31 22:44 ` [PATCH 3/4] xfs_scrub: recheck entire metadata objects after corruption repairs Darrick J. Wong
2024-01-05 5:08 ` Christoph Hellwig
2023-12-31 22:45 ` [PATCH 4/4] xfs_scrub: try to repair space metadata before file metadata Darrick J. Wong
2024-01-05 5:09 ` Christoph Hellwig
2023-12-31 19:47 ` [PATCHSET v29.0 31/40] xfs_scrub: detect deceptive filename extensions Darrick J. Wong
2023-12-31 22:45 ` [PATCH 01/13] xfs_scrub: use proper UChar string iterators Darrick J. Wong
2023-12-31 22:45 ` [PATCH 02/13] xfs_scrub: hoist code that removes ignorable characters Darrick J. Wong
2023-12-31 22:45 ` [PATCH 03/13] xfs_scrub: add a couple of omitted invisible code points Darrick J. Wong
2023-12-31 22:46 ` [PATCH 04/13] xfs_scrub: avoid potential UAF after freeing a duplicate name entry Darrick J. Wong
2023-12-31 22:46 ` [PATCH 05/13] xfs_scrub: guard against libicu returning negative buffer lengths Darrick J. Wong
2023-12-31 22:46 ` [PATCH 06/13] xfs_scrub: hoist non-rendering character predicate Darrick J. Wong
2023-12-31 22:46 ` [PATCH 07/13] xfs_scrub: store bad flags with the name entry Darrick J. Wong
2023-12-31 22:47 ` [PATCH 08/13] xfs_scrub: rename UNICRASH_ZERO_WIDTH to UNICRASH_INVISIBLE Darrick J. Wong
2023-12-31 22:47 ` [PATCH 09/13] xfs_scrub: type-coerce the UNICRASH_* flags Darrick J. Wong
2023-12-31 22:47 ` [PATCH 10/13] xfs_scrub: reduce size of struct name_entry Darrick J. Wong
2023-12-31 22:47 ` [PATCH 11/13] xfs_scrub: rename struct unicrash.normalizer Darrick J. Wong
2023-12-31 22:48 ` [PATCH 12/13] xfs_scrub: report deceptive file extensions Darrick J. Wong
2023-12-31 22:48 ` [PATCH 13/13] xfs_scrub: dump unicode points Darrick J. Wong
2023-12-31 19:48 ` [PATCHSET v29.0 32/40] xfs_scrub: move fstrim to a separate phase Darrick J. Wong
2023-12-31 22:48 ` [PATCH 1/8] xfs_scrub: move FITRIM to phase 8 Darrick J. Wong
2023-12-31 22:48 ` [PATCH 2/8] xfs_scrub: ignore phase 8 if the user disabled fstrim Darrick J. Wong
2023-12-31 22:49 ` [PATCH 3/8] xfs_scrub: collapse trim_filesystem Darrick J. Wong
2023-12-31 22:49 ` [PATCH 4/8] xfs_scrub: fix the work estimation for phase 8 Darrick J. Wong
2023-12-31 22:49 ` [PATCH 5/8] xfs_scrub: report FITRIM errors properly Darrick J. Wong
2023-12-31 22:49 ` [PATCH 6/8] xfs_scrub: don't call FITRIM after runtime errors Darrick J. Wong
2023-12-31 22:50 ` [PATCH 7/8] xfs_scrub: don't trim the first agbno of each AG for better performance Darrick J. Wong
2023-12-31 22:50 ` [PATCH 8/8] xfs_scrub: improve progress meter for phase 8 fstrimming Darrick J. Wong
2023-12-31 19:48 ` [PATCHSET v29.0 33/40] xfs_scrub: use free space histograms to reduce fstrim runtime Darrick J. Wong
2023-12-31 22:50 ` [PATCH 1/7] libfrog: hoist free space histogram code Darrick J. Wong
2023-12-31 22:51 ` [PATCH 2/7] libfrog: print wider columns for free space histogram Darrick J. Wong
2023-12-31 22:51 ` [PATCH 3/7] libfrog: print cdf of free space buckets Darrick J. Wong
2023-12-31 22:51 ` [PATCH 4/7] xfs_scrub: don't close stdout when closing the progress bar Darrick J. Wong
2023-12-31 22:51 ` [PATCH 5/7] xfs_scrub: remove pointless spacemap.c arguments Darrick J. Wong
2023-12-31 22:52 ` [PATCH 6/7] xfs_scrub: collect free space histograms during phase 7 Darrick J. Wong
2023-12-31 22:52 ` [PATCH 7/7] xfs_scrub: tune fstrim minlen parameter based on free space histograms Darrick J. Wong
2023-12-31 19:48 ` [PATCHSET v29.0 34/40] xfs_scrub: fixes for systemd services Darrick J. Wong
2023-12-31 20:25 ` Neal Gompa
2024-01-03 1:23 ` Darrick J. Wong
2023-12-31 22:52 ` [PATCH 1/9] debian: install scrub services with dh_installsystemd Darrick J. Wong
2023-12-31 22:52 ` [PATCH 2/9] xfs_scrub_all: escape service names consistently Darrick J. Wong
2023-12-31 22:53 ` [PATCH 3/9] xfs_scrub: fix pathname escaping across all service definitions Darrick J. Wong
2023-12-31 22:53 ` [PATCH 4/9] xfs_scrub_fail: fix sendmail detection Darrick J. Wong
2023-12-31 22:53 ` [PATCH 5/9] xfs_scrub_fail: return the failure status of the mailer program Darrick J. Wong
2023-12-31 22:53 ` [PATCH 6/9] xfs_scrub_fail: add content type header to failure emails Darrick J. Wong
2024-01-05 5:09 ` Christoph Hellwig
2023-12-31 22:54 ` [PATCH 7/9] xfs_scrub_fail: advise recipients not to reply Darrick J. Wong
2024-01-05 5:10 ` Christoph Hellwig
2023-12-31 22:54 ` [PATCH 8/9] xfs_scrub_fail: move executable script to /usr/libexec Darrick J. Wong
2024-01-01 0:24 ` Neal Gompa
2024-01-03 1:26 ` Darrick J. Wong
2024-01-05 5:10 ` Christoph Hellwig
2023-12-31 22:54 ` [PATCH 9/9] xfs_scrub_all.cron: move to package data directory Darrick J. Wong
2024-01-03 2:01 ` Neal Gompa
2024-01-05 5:11 ` Christoph Hellwig
2024-01-02 10:48 ` [PATCHSET v29.0 34/40] xfs_scrub: fixes for systemd services Christoph Hellwig
2024-01-03 1:26 ` Darrick J. Wong
2023-12-31 19:48 ` [PATCHSET v29.0 35/40] xfs_scrub_all: " Darrick J. Wong
2023-12-31 22:54 ` [PATCH 1/4] xfs_scrub_all: fix argument passing when invoking xfs_scrub manually Darrick J. Wong
2023-12-31 22:55 ` [PATCH 2/4] xfs_scrub_all: survive systemd restarts when waiting for services Darrick J. Wong
2023-12-31 22:55 ` [PATCH 3/4] xfs_scrub_all: simplify cleanup of run_killable Darrick J. Wong
2023-12-31 22:55 ` [PATCH 4/4] xfs_scrub_all: fix termination signal handling Darrick J. Wong
2023-12-31 19:49 ` [PATCHSET v29.0 36/40] xfs_scrub: tighten security of systemd services Darrick J. Wong
2023-12-31 22:55 ` [PATCH 1/6] xfs_scrub: allow auxiliary pathnames for sandboxing Darrick J. Wong
2023-12-31 22:56 ` [PATCH 2/6] xfs_scrub.service: reduce CPU usage to 60% when possible Darrick J. Wong
2023-12-31 22:56 ` [PATCH 3/6] xfs_scrub: use dynamic users when running as a systemd service Darrick J. Wong
2023-12-31 22:56 ` [PATCH 4/6] xfs_scrub: tighten up the security on the background " Darrick J. Wong
2023-12-31 22:57 ` [PATCH 5/6] xfs_scrub_fail: " Darrick J. Wong
2023-12-31 22:57 ` [PATCH 6/6] xfs_scrub_all: " Darrick J. Wong
2023-12-31 19:49 ` [PATCHSET v29.0 37/40] xfs_scrub_all: automatic media scan service Darrick J. Wong
2023-12-31 22:57 ` [PATCH 1/6] xfs_scrub_all: only use the xfs_scrub@ systemd services in service mode Darrick J. Wong
2023-12-31 22:57 ` [PATCH 2/6] xfs_scrub_all: remove journalctl background process Darrick J. Wong
2023-12-31 22:58 ` [PATCH 3/6] xfs_scrub_all: support metadata+media scans of all filesystems Darrick J. Wong
2023-12-31 22:58 ` [PATCH 4/6] xfs_scrub_all: enable periodic file data scrubs automatically Darrick J. Wong
2023-12-31 22:58 ` [PATCH 5/6] xfs_scrub_all: trigger automatic media scans once per month Darrick J. Wong
2023-12-31 22:58 ` [PATCH 6/6] xfs_scrub_all: failure reporting for the xfs_scrub_all job Darrick J. Wong
2023-12-31 19:49 ` [PATCHSET v29.0 38/40] xfs_scrub_all: improve systemd handling Darrick J. Wong
2023-12-31 22:59 ` [PATCH 1/5] xfs_scrub_all: encapsulate all the subprocess code in an object Darrick J. Wong
2023-12-31 22:59 ` [PATCH 2/5] xfs_scrub_all: encapsulate all the systemctl " Darrick J. Wong
2023-12-31 22:59 ` [PATCH 3/5] xfs_scrub_all: add CLI option for easier debugging Darrick J. Wong
2023-12-31 22:59 ` [PATCH 4/5] xfs_scrub_all: convert systemctl calls to dbus Darrick J. Wong
2023-12-31 23:00 ` [PATCH 5/5] xfs_scrub_all: implement retry and backoff for dbus calls Darrick J. Wong
2023-12-31 19:49 ` [PATCHSET v29.0 39/40] xfs_scrub: automatic optimization by default Darrick J. Wong
2023-12-31 23:00 ` [PATCH 1/3] xfs_scrub: automatic downgrades to dry-run mode in service mode Darrick J. Wong
2023-12-31 23:00 ` [PATCH 2/3] xfs_scrub: add an optimization-only mode Darrick J. Wong
2023-12-31 23:00 ` [PATCH 3/3] debian: enable xfs_scrub systemd services by default Darrick J. Wong
2023-12-31 19:50 ` [PATCHSET 40/40] xfs_repair: add other v5 features to filesystems Darrick J. Wong
2023-12-31 23:01 ` [PATCH 1/4] xfs_repair: check free space requirements before allowing upgrades Darrick J. Wong
2023-12-31 23:01 ` [PATCH 2/4] xfs_repair: allow sysadmins to add free inode btree indexes Darrick J. Wong
2023-12-31 23:01 ` [PATCH 3/4] xfs_repair: allow sysadmins to add reflink Darrick J. Wong
2023-12-31 23:01 ` [PATCH 4/4] xfs_repair: allow sysadmins to add reverse mapping indexes Darrick J. Wong
2023-12-31 19:57 ` [PATCHSET 1/8] fstests: fuzz non-root dquots on xfs Darrick J. Wong
2023-12-27 13:42 ` [PATCH 1/3] fuzzy: mask off a few more inode fields from the fuzz tests Darrick J. Wong
2023-12-27 13:43 ` [PATCH 2/3] fuzzy: allow FUZZ_REWRITE_DURATION to control fsstress runtime when fuzzing Darrick J. Wong
2023-12-27 13:43 ` [PATCH 3/3] fuzzy: test other dquot ids Darrick J. Wong
2023-12-31 19:57 ` [PATCHSET 2/8] xfsprogs: scale shards on ssds Darrick J. Wong
2023-12-27 13:43 ` [PATCH 1/1] xfs: test scaling of the mkfs concurrency options Darrick J. Wong
2023-12-31 19:57 ` [PATCHSET v29.0 3/8] fstests: establish baseline for fuzz tests Darrick J. Wong
2023-12-27 13:43 ` [PATCH 1/4] xfs: online fuzz test known output Darrick J. Wong
2023-12-27 13:44 ` [PATCH 2/4] xfs: offline " Darrick J. Wong
2023-12-27 13:44 ` [PATCH 3/4] xfs: norepair " Darrick J. Wong
2023-12-27 13:44 ` [PATCH 4/4] xfs: bothrepair " Darrick J. Wong
2023-12-31 19:57 ` [PATCHSET v29.0 4/8] fstests: atomic file updates Darrick J. Wong
2023-12-27 13:44 ` [PATCH 1/1] swapext: make sure that we don't swap unwritten extents unless they're part of a rt extent(??) Darrick J. Wong
2023-12-31 19:58 ` [PATCHSET v29.0 5/8] fstests: detect deceptive filename extensions Darrick J. Wong
2023-12-27 13:45 ` [PATCH 1/2] generic/453: test confusable name detection with 32-bit unicode codepoints Darrick J. Wong
2023-12-27 13:45 ` [PATCH 2/2] generic/453: check xfs_scrub detection of confusing job offers Darrick J. Wong
2023-12-31 19:58 ` [PATCHSET v29.0 6/8] fstests: test systemd background services Darrick J. Wong
2023-12-27 13:45 ` [PATCH 1/1] xfs: test xfs_scrub services Darrick J. Wong
2023-12-31 19:58 ` [PATCHSET v29.0 7/8] fstests: use free space histograms to reduce fstrim runtime Darrick J. Wong
2023-12-27 13:45 ` [PATCH 1/1] xfs/004: fix column extraction code Darrick J. Wong
2023-12-31 19:58 ` [PATCHSET 8/8] fstests: test upgrading older features Darrick J. Wong
2023-12-27 13:46 ` [PATCH 1/1] xfs: test upgrading old features Darrick J. Wong
2023-12-31 20:02 ` [PATCHSET v29.0] xfs-documentation: atomic file updates Darrick J. Wong
2023-12-27 14:07 ` [PATCH 1/1] design: document atomic extent swap log intent structures Darrick J. Wong
-- strict thread matches above, loose matches on Subject: below --
2023-05-26 0:37 [PATCHSET v25.0 0/3] xfs: cache xfile pages for better performance Darrick J. Wong
2023-05-26 1:38 ` [PATCH 1/3] xfs: map xfile pages directly into xfs_buf Darrick J. Wong
2022-12-30 22:14 [PATCHSET v24.0 0/3] xfs: cache xfile pages for better performance Darrick J. Wong
2022-12-30 22:14 ` [PATCH 1/3] xfs: map xfile pages directly into xfs_buf Darrick J. Wong
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=170404837613.1754104.1414992009596163702.stgit@frogsfrogsfrogs \
--to=djwong@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox