From: "Darrick J. Wong" <djwong@kernel.org>
To: djwong@kernel.org
Cc: linux-xfs@vger.kernel.org, hch@lst.de
Subject: [PATCH 07/16] xfs: move draining of deferred operations to the generic group structure
Date: Thu, 17 Oct 2024 11:53:02 -0700 [thread overview]
Message-ID: <172919068795.3450737.9855267063462898076.stgit@frogsfrogsfrogs> (raw)
In-Reply-To: <172919068618.3450737.15265130869882039127.stgit@frogsfrogsfrogs>
From: Christoph Hellwig <hch@lst.de>
Prepare supporting the upcoming realtime groups feature by moving the
deferred operation draining to the generic xfs_group structure.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
fs/xfs/libxfs/xfs_ag.c | 7 ++-----
fs/xfs/libxfs/xfs_ag.h | 9 ---------
fs/xfs/libxfs/xfs_group.c | 4 ++++
fs/xfs/libxfs/xfs_group.h | 9 +++++++++
fs/xfs/scrub/common.c | 4 ++--
fs/xfs/xfs_drain.c | 46 ++++++++++++++++++++++++---------------------
fs/xfs/xfs_drain.h | 6 ++++--
fs/xfs/xfs_trace.h | 36 ++++++++++++++++++++---------------
8 files changed, 66 insertions(+), 55 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_ag.c b/fs/xfs/libxfs/xfs_ag.c
index 84bd3831297e07..c2f1f830d299d3 100644
--- a/fs/xfs/libxfs/xfs_ag.c
+++ b/fs/xfs/libxfs/xfs_ag.c
@@ -112,7 +112,6 @@ xfs_perag_uninit(
#ifdef __KERNEL__
struct xfs_perag *pag = to_perag(xg);
- xfs_defer_drain_free(&pag->pag_intents_drain);
cancel_delayed_work_sync(&pag->pag_blockgc_work);
xfs_buf_cache_destroy(&pag->pag_bcache);
#endif
@@ -234,7 +233,6 @@ xfs_perag_alloc(
spin_lock_init(&pag->pagb_lock);
INIT_DELAYED_WORK(&pag->pag_blockgc_work, xfs_blockgc_worker);
INIT_RADIX_TREE(&pag->pag_ici_root, GFP_ATOMIC);
- xfs_defer_drain_init(&pag->pag_intents_drain);
init_waitqueue_head(&pag->pagb_wait);
pag->pagb_tree = RB_ROOT;
xfs_hooks_init(&pag->pag_rmap_update_hooks);
@@ -242,7 +240,7 @@ xfs_perag_alloc(
error = xfs_buf_cache_init(&pag->pag_bcache);
if (error)
- goto out_defer_drain_free;
+ goto out_free_perag;
/*
* Pre-calculated geometry
@@ -260,8 +258,7 @@ xfs_perag_alloc(
out_buf_cache_destroy:
xfs_buf_cache_destroy(&pag->pag_bcache);
-out_defer_drain_free:
- xfs_defer_drain_free(&pag->pag_intents_drain);
+out_free_perag:
kfree(pag);
return error;
}
diff --git a/fs/xfs/libxfs/xfs_ag.h b/fs/xfs/libxfs/xfs_ag.h
index 8271cb72c88387..45f8de06cdbc8a 100644
--- a/fs/xfs/libxfs/xfs_ag.h
+++ b/fs/xfs/libxfs/xfs_ag.h
@@ -97,15 +97,6 @@ struct xfs_perag {
/* background prealloc block trimming */
struct delayed_work pag_blockgc_work;
- /*
- * We use xfs_drain to track the number of deferred log intent items
- * that have been queued (but not yet processed) so that waiters (e.g.
- * scrub) will not lock resources when other threads are in the middle
- * of processing a chain of intent items only to find momentary
- * inconsistencies.
- */
- struct xfs_defer_drain pag_intents_drain;
-
/* Hook to feed rmapbt updates to an active online repair. */
struct xfs_hooks pag_rmap_update_hooks;
#endif /* __KERNEL__ */
diff --git a/fs/xfs/libxfs/xfs_group.c b/fs/xfs/libxfs/xfs_group.c
index 927e72c0882b88..6737f009dd38ca 100644
--- a/fs/xfs/libxfs/xfs_group.c
+++ b/fs/xfs/libxfs/xfs_group.c
@@ -160,6 +160,8 @@ xfs_group_free(
XFS_IS_CORRUPT(mp, atomic_read(&xg->xg_ref) != 0);
+ xfs_defer_drain_free(&xg->xg_intents_drain);
+
if (uninit)
uninit(xg);
@@ -185,6 +187,7 @@ xfs_group_insert(
#ifdef __KERNEL__
spin_lock_init(&xg->xg_state_lock);
#endif
+ xfs_defer_drain_init(&xg->xg_intents_drain);
/* Active ref owned by mount indicates group is online. */
atomic_set(&xg->xg_active_ref, 1);
@@ -192,6 +195,7 @@ xfs_group_insert(
error = xa_insert(&mp->m_groups[type].xa, index, xg, GFP_KERNEL);
if (error) {
WARN_ON_ONCE(error == -EBUSY);
+ xfs_defer_drain_free(&xg->xg_intents_drain);
return error;
}
diff --git a/fs/xfs/libxfs/xfs_group.h b/fs/xfs/libxfs/xfs_group.h
index d2c61dd1f43e44..ebefbba7d98cc2 100644
--- a/fs/xfs/libxfs/xfs_group.h
+++ b/fs/xfs/libxfs/xfs_group.h
@@ -22,6 +22,15 @@ struct xfs_group {
uint16_t xg_checked;
uint16_t xg_sick;
spinlock_t xg_state_lock;
+
+ /*
+ * We use xfs_drain to track the number of deferred log intent items
+ * that have been queued (but not yet processed) so that waiters (e.g.
+ * scrub) will not lock resources when other threads are in the middle
+ * of processing a chain of intent items only to find momentary
+ * inconsistencies.
+ */
+ struct xfs_defer_drain xg_intents_drain;
#endif /* __KERNEL__ */
};
diff --git a/fs/xfs/scrub/common.c b/fs/xfs/scrub/common.c
index 28095ed490fbf6..e8b5e73bab60d3 100644
--- a/fs/xfs/scrub/common.c
+++ b/fs/xfs/scrub/common.c
@@ -513,7 +513,7 @@ xchk_perag_drain_and_lock(
* Obviously, this should be slanted against scrub and in favor
* of runtime threads.
*/
- if (!xfs_perag_intent_busy(sa->pag))
+ if (!xfs_group_intent_busy(pag_group(sa->pag)))
return 0;
if (sa->agf_bp) {
@@ -528,7 +528,7 @@ xchk_perag_drain_and_lock(
if (!(sc->flags & XCHK_FSGATES_DRAIN))
return -ECHRNG;
- error = xfs_perag_intent_drain(sa->pag);
+ error = xfs_group_intent_drain(pag_group(sa->pag));
if (error == -ERESTARTSYS)
error = -EINTR;
} while (!error);
diff --git a/fs/xfs/xfs_drain.c b/fs/xfs/xfs_drain.c
index 3f280971b498b8..a72d08947d6d10 100644
--- a/fs/xfs/xfs_drain.c
+++ b/fs/xfs/xfs_drain.c
@@ -94,24 +94,26 @@ static inline int xfs_defer_drain_wait(struct xfs_defer_drain *dr)
}
/*
- * Declare an intent to update AG metadata. Other threads that need exclusive
- * access can decide to back off if they see declared intentions.
+ * Declare an intent to update group metadata. Other threads that need
+ * exclusive access can decide to back off if they see declared intentions.
*/
static void
-xfs_perag_intent_hold(
- struct xfs_perag *pag)
+xfs_group_intent_hold(
+ struct xfs_group *xg)
{
- trace_xfs_perag_intent_hold(pag, __return_address);
- xfs_defer_drain_grab(&pag->pag_intents_drain);
+ trace_xfs_group_intent_hold(xg, __return_address);
+ xfs_defer_drain_grab(&xg->xg_intents_drain);
}
-/* Release our intent to update this AG's metadata. */
+/*
+ * Release our intent to update this groups metadata.
+ */
static void
-xfs_perag_intent_rele(
- struct xfs_perag *pag)
+xfs_group_intent_rele(
+ struct xfs_group *xg)
{
- trace_xfs_perag_intent_rele(pag, __return_address);
- xfs_defer_drain_rele(&pag->pag_intents_drain);
+ trace_xfs_group_intent_rele(xg, __return_address);
+ xfs_defer_drain_rele(&xg->xg_intents_drain);
}
/*
@@ -129,7 +131,7 @@ xfs_perag_intent_get(
if (!pag)
return NULL;
- xfs_perag_intent_hold(pag);
+ xfs_group_intent_hold(pag_group(pag));
return pag;
}
@@ -141,7 +143,7 @@ void
xfs_perag_intent_put(
struct xfs_perag *pag)
{
- xfs_perag_intent_rele(pag);
+ xfs_group_intent_rele(pag_group(pag));
xfs_perag_put(pag);
}
@@ -150,17 +152,19 @@ xfs_perag_intent_put(
* Callers must not hold any AG header buffers.
*/
int
-xfs_perag_intent_drain(
- struct xfs_perag *pag)
+xfs_group_intent_drain(
+ struct xfs_group *xg)
{
- trace_xfs_perag_wait_intents(pag, __return_address);
- return xfs_defer_drain_wait(&pag->pag_intents_drain);
+ trace_xfs_group_wait_intents(xg, __return_address);
+ return xfs_defer_drain_wait(&xg->xg_intents_drain);
}
-/* Has anyone declared an intent to update this AG? */
+/*
+ * Has anyone declared an intent to update this group?
+ */
bool
-xfs_perag_intent_busy(
- struct xfs_perag *pag)
+xfs_group_intent_busy(
+ struct xfs_group *xg)
{
- return xfs_defer_drain_busy(&pag->pag_intents_drain);
+ return xfs_defer_drain_busy(&xg->xg_intents_drain);
}
diff --git a/fs/xfs/xfs_drain.h b/fs/xfs/xfs_drain.h
index f39c90946ab71f..3e6143572e52d2 100644
--- a/fs/xfs/xfs_drain.h
+++ b/fs/xfs/xfs_drain.h
@@ -6,6 +6,7 @@
#ifndef XFS_DRAIN_H_
#define XFS_DRAIN_H_
+struct xfs_group;
struct xfs_perag;
#ifdef CONFIG_XFS_DRAIN_INTENTS
@@ -65,8 +66,9 @@ struct xfs_perag *xfs_perag_intent_get(struct xfs_mount *mp,
xfs_fsblock_t fsbno);
void xfs_perag_intent_put(struct xfs_perag *pag);
-int xfs_perag_intent_drain(struct xfs_perag *pag);
-bool xfs_perag_intent_busy(struct xfs_perag *pag);
+int xfs_group_intent_drain(struct xfs_group *xg);
+bool xfs_group_intent_busy(struct xfs_group *xg);
+
#else
struct xfs_defer_drain { /* empty */ };
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
index 5c43db0ddf4526..ed452bbfa4ffb3 100644
--- a/fs/xfs/xfs_trace.h
+++ b/fs/xfs/xfs_trace.h
@@ -4689,35 +4689,39 @@ TRACE_EVENT(xfs_force_shutdown,
);
#ifdef CONFIG_XFS_DRAIN_INTENTS
-DECLARE_EVENT_CLASS(xfs_perag_intents_class,
- TP_PROTO(const struct xfs_perag *pag, void *caller_ip),
- TP_ARGS(pag, caller_ip),
+DECLARE_EVENT_CLASS(xfs_group_intents_class,
+ TP_PROTO(const struct xfs_group *xg, void *caller_ip),
+ TP_ARGS(xg, caller_ip),
TP_STRUCT__entry(
__field(dev_t, dev)
- __field(xfs_agnumber_t, agno)
+ __field(enum xfs_group_type, type)
+ __field(uint32_t, index)
__field(long, nr_intents)
__field(void *, caller_ip)
),
TP_fast_assign(
- __entry->dev = pag_mount(pag)->m_super->s_dev;
- __entry->agno = pag_agno(pag);
- __entry->nr_intents = atomic_read(&pag->pag_intents_drain.dr_count);
+ __entry->dev = xg->xg_mount->m_super->s_dev;
+ __entry->type = xg->xg_type;
+ __entry->index = xg->xg_gno;
+ __entry->nr_intents =
+ atomic_read(&xg->xg_intents_drain.dr_count);
__entry->caller_ip = caller_ip;
),
- TP_printk("dev %d:%d agno 0x%x intents %ld caller %pS",
+ TP_printk("dev %d:%d %sno 0x%x intents %ld caller %pS",
MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->agno,
+ __print_symbolic(__entry->type, XG_TYPE_STRINGS),
+ __entry->index,
__entry->nr_intents,
__entry->caller_ip)
);
-#define DEFINE_PERAG_INTENTS_EVENT(name) \
-DEFINE_EVENT(xfs_perag_intents_class, name, \
- TP_PROTO(const struct xfs_perag *pag, void *caller_ip), \
- TP_ARGS(pag, caller_ip))
-DEFINE_PERAG_INTENTS_EVENT(xfs_perag_intent_hold);
-DEFINE_PERAG_INTENTS_EVENT(xfs_perag_intent_rele);
-DEFINE_PERAG_INTENTS_EVENT(xfs_perag_wait_intents);
+#define DEFINE_GROUP_INTENTS_EVENT(name) \
+DEFINE_EVENT(xfs_group_intents_class, name, \
+ TP_PROTO(const struct xfs_group *xg, void *caller_ip), \
+ TP_ARGS(xg, caller_ip))
+DEFINE_GROUP_INTENTS_EVENT(xfs_group_intent_hold);
+DEFINE_GROUP_INTENTS_EVENT(xfs_group_intent_rele);
+DEFINE_GROUP_INTENTS_EVENT(xfs_group_wait_intents);
#endif /* CONFIG_XFS_DRAIN_INTENTS */
next prev parent reply other threads:[~2024-10-17 18:53 UTC|newest]
Thread overview: 158+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-17 18:40 [PATCHBOMB 6.13 v5.1] xfs: metadata directories and realtime groups Darrick J. Wong
2024-10-17 18:46 ` [PATCHSET v5.1 1/9] xfs: convert perag to use xarrays Darrick J. Wong
2024-10-17 18:47 ` [PATCH 01/22] xfs: fix superfluous clearing of info->low in __xfs_getfsmap_datadev Darrick J. Wong
2024-10-17 18:48 ` [PATCH 02/22] xfs: remove the unused pagb_count field in struct xfs_perag Darrick J. Wong
2024-10-17 18:48 ` [PATCH 03/22] xfs: remove the unused pag_active_wq " Darrick J. Wong
2024-10-17 18:48 ` [PATCH 04/22] xfs: pass a pag to xfs_difree_inode_chunk Darrick J. Wong
2024-10-17 18:48 ` [PATCH 05/22] xfs: remove the agno argument to xfs_free_ag_extent Darrick J. Wong
2024-10-17 18:48 ` [PATCH 06/22] xfs: add xfs_agbno_to_fsb and xfs_agbno_to_daddr helpers Darrick J. Wong
2024-10-17 18:49 ` [PATCH 07/22] xfs: add a xfs_agino_to_ino helper Darrick J. Wong
2024-10-17 18:49 ` [PATCH 08/22] xfs: pass a pag to xfs_extent_busy_{search,reuse} Darrick J. Wong
2024-10-17 18:49 ` [PATCH 09/22] xfs: keep a reference to the pag for busy extents Darrick J. Wong
2024-10-17 18:49 ` [PATCH 10/22] xfs: remove the mount field from struct xfs_busy_extents Darrick J. Wong
2024-10-17 18:49 ` [PATCH 11/22] xfs: remove the unused trace_xfs_iwalk_ag trace point Darrick J. Wong
2024-10-17 18:49 ` [PATCH 12/22] xfs: remove the unused xrep_bmap_walk_rmap " Darrick J. Wong
2024-10-17 18:50 ` [PATCH 13/22] xfs: constify pag arguments to trace points Darrick J. Wong
2024-10-17 18:50 ` [PATCH 14/22] xfs: pass a perag structure to the xfs_ag_resv_init_error trace point Darrick J. Wong
2024-10-17 18:50 ` [PATCH 15/22] xfs: pass objects to the xfs_irec_merge_{pre,post} trace points Darrick J. Wong
2024-10-17 18:50 ` [PATCH 16/22] xfs: pass the iunlink item to the xfs_iunlink_update_dinode trace point Darrick J. Wong
2024-10-17 18:50 ` [PATCH 17/22] xfs: pass objects to the xrep_ibt_walk_rmap tracepoint Darrick J. Wong
2024-10-17 18:51 ` [PATCH 18/22] xfs: pass the pag to the trace_xrep_calc_ag_resblks{,_btsize} trace points Darrick J. Wong
2024-10-17 18:51 ` [PATCH 19/22] xfs: pass the pag to the xrep_newbt_extent_class tracepoints Darrick J. Wong
2024-10-17 18:51 ` [PATCH 20/22] xfs: convert remaining trace points to pass pag structures Darrick J. Wong
2024-10-17 18:51 ` [PATCH 21/22] xfs: split xfs_initialize_perag Darrick J. Wong
2024-10-17 18:51 ` [PATCH 22/22] xfs: insert the pag structures into the xarray later Darrick J. Wong
2024-10-17 18:46 ` [PATCHSET v5.1 2/9] xfs: create a generic allocation group structure Darrick J. Wong
2024-10-17 18:51 ` [PATCH 01/16] xfs: factor out a xfs_iwalk_args helper Darrick J. Wong
2024-10-17 18:52 ` [PATCH 02/16] xfs: factor out a generic xfs_group structure Darrick J. Wong
2024-10-17 18:52 ` [PATCH 03/16] xfs: add a xfs_group_next_range helper Darrick J. Wong
2024-10-17 18:52 ` [PATCH 04/16] xfs: switch perag iteration from the for_each macros to a while based iterator Darrick J. Wong
2024-10-17 18:52 ` [PATCH 05/16] xfs: move metadata health tracking to the generic group structure Darrick J. Wong
2024-10-17 18:52 ` [PATCH 06/16] xfs: mark xfs_perag_intent_{hold,rele} static Darrick J. Wong
2024-10-17 18:53 ` Darrick J. Wong [this message]
2024-10-17 18:53 ` [PATCH 08/16] xfs: move the online repair rmap hooks to the generic group structure Darrick J. Wong
2024-10-17 18:53 ` [PATCH 09/16] xfs: return the busy generation from xfs_extent_busy_list_empty Darrick J. Wong
2024-10-17 18:53 ` [PATCH 10/16] xfs: convert extent busy tracepoints to the generic group structure Darrick J. Wong
2024-10-17 18:53 ` [PATCH 11/16] xfs: convert busy extent tracking " Darrick J. Wong
2024-10-17 18:53 ` [PATCH 12/16] xfs: add a generic group pointer to the btree cursor Darrick J. Wong
2024-10-17 18:54 ` [PATCH 13/16] xfs: store a generic xfs_group pointer in xfs_getfsmap_info Darrick J. Wong
2024-10-17 18:54 ` [PATCH 14/16] xfs: add group based bno conversion helpers Darrick J. Wong
2024-10-17 18:54 ` [PATCH 15/16] xfs: remove xfs_group_intent_hold and xfs_group_intent_rele Darrick J. Wong
2024-10-17 18:54 ` [PATCH 16/16] xfs: store a generic group structure in the intents Darrick J. Wong
2024-10-17 18:46 ` [PATCHSET v5.1 3/9] xfs: metadata inode directory trees Darrick J. Wong
2024-10-17 18:54 ` [PATCH 01/29] xfs: constify the xfs_sb predicates Darrick J. Wong
2024-10-17 18:54 ` [PATCH 02/29] xfs: constify the xfs_inode predicates Darrick J. Wong
2024-10-17 18:55 ` [PATCH 03/29] xfs: rename metadata inode predicates Darrick J. Wong
2024-10-22 5:49 ` Christoph Hellwig
2024-10-17 18:55 ` [PATCH 04/29] xfs: standardize EXPERIMENTAL warning generation Darrick J. Wong
2024-10-22 5:50 ` Christoph Hellwig
2024-10-17 18:55 ` [PATCH 05/29] xfs: define the on-disk format for the metadir feature Darrick J. Wong
2024-10-17 18:55 ` [PATCH 06/29] xfs: iget for metadata inodes Darrick J. Wong
2024-10-17 18:55 ` [PATCH 07/29] xfs: load metadata directory root at mount time Darrick J. Wong
2024-10-17 18:56 ` [PATCH 08/29] xfs: enforce metadata inode flag Darrick J. Wong
2024-10-17 18:56 ` [PATCH 09/29] xfs: read and write metadata inode directory tree Darrick J. Wong
2024-10-17 18:56 ` [PATCH 10/29] xfs: disable the agi rotor for metadata inodes Darrick J. Wong
2024-10-17 18:56 ` [PATCH 11/29] xfs: hide metadata inodes from everyone because they are special Darrick J. Wong
2024-10-17 18:56 ` [PATCH 12/29] xfs: advertise metadata directory feature Darrick J. Wong
2024-10-17 18:56 ` [PATCH 13/29] xfs: allow bulkstat to return metadata directories Darrick J. Wong
2024-10-17 18:57 ` [PATCH 14/29] xfs: don't count metadata directory files to quota Darrick J. Wong
2024-10-17 18:57 ` [PATCH 15/29] xfs: mark quota inodes as metadata files Darrick J. Wong
2024-10-17 18:57 ` [PATCH 16/29] xfs: adjust xfs_bmap_add_attrfork for metadir Darrick J. Wong
2024-10-17 18:57 ` [PATCH 17/29] xfs: record health problems with the metadata directory Darrick J. Wong
2024-10-17 18:57 ` [PATCH 18/29] xfs: refactor directory tree root predicates Darrick J. Wong
2024-10-17 18:57 ` [PATCH 19/29] xfs: do not count metadata directory files when doing online quotacheck Darrick J. Wong
2024-10-17 18:58 ` [PATCH 20/29] xfs: don't fail repairs on metadata files with no attr fork Darrick J. Wong
2024-10-18 6:00 ` Greg KH
2024-10-21 17:27 ` Darrick J. Wong
2024-10-22 11:16 ` Carlos Maiolino
2024-10-26 7:29 ` Carlos Maiolino
2024-10-17 18:58 ` [PATCH 21/29] xfs: metadata files can have xattrs if metadir is enabled Darrick J. Wong
2024-10-17 18:58 ` [PATCH 22/29] xfs: adjust parent pointer scrubber for sb-rooted metadata files Darrick J. Wong
2024-10-17 18:58 ` [PATCH 23/29] xfs: fix di_metatype field of inodes that won't load Darrick J. Wong
2024-10-17 18:58 ` [PATCH 24/29] xfs: scrub metadata directories Darrick J. Wong
2024-10-17 18:59 ` [PATCH 25/29] xfs: check the metadata directory inumber in superblocks Darrick J. Wong
2024-10-17 18:59 ` [PATCH 26/29] xfs: move repair temporary files to the metadata directory tree Darrick J. Wong
2024-10-17 18:59 ` [PATCH 27/29] xfs: check metadata directory file path connectivity Darrick J. Wong
2024-10-17 18:59 ` [PATCH 28/29] xfs: confirm dotdot target before replacing it during a repair Darrick J. Wong
2024-10-17 18:59 ` [PATCH 29/29] xfs: repair metadata directory file path connectivity Darrick J. Wong
2024-10-17 18:46 ` [PATCHSET v5.1 4/9] xfs: create incore rt allocation groups Darrick J. Wong
2024-10-17 18:59 ` [PATCH 01/21] xfs: clean up xfs_getfsmap_helper arguments Darrick J. Wong
2024-10-17 19:00 ` [PATCH 02/21] xfs: create incore realtime group structures Darrick J. Wong
2024-10-17 19:00 ` [PATCH 03/21] xfs: define locking primitives for realtime groups Darrick J. Wong
2024-10-17 19:00 ` [PATCH 04/21] xfs: add a lockdep class key for rtgroup inodes Darrick J. Wong
2024-10-17 19:00 ` [PATCH 05/21] xfs: support caching rtgroup metadata inodes Darrick J. Wong
2024-10-17 19:00 ` [PATCH 06/21] xfs: add rtgroup-based realtime scrubbing context management Darrick J. Wong
2024-10-17 19:00 ` [PATCH 07/21] xfs: add a xfs_bmap_free_rtblocks helper Darrick J. Wong
2024-10-17 19:01 ` [PATCH 08/21] xfs: add a xfs_qm_unmount_rt helper Darrick J. Wong
2024-10-17 19:01 ` [PATCH 09/21] xfs: factor out a xfs_growfs_rt_alloc_blocks helper Darrick J. Wong
2024-10-17 19:01 ` [PATCH 10/21] xfs: cleanup xfs_getfsmap_rtdev_rtbitmap Darrick J. Wong
2024-10-17 19:01 ` [PATCH 11/21] xfs: split xfs_trim_rtdev_extents Darrick J. Wong
2024-10-17 19:01 ` [PATCH 12/21] xfs: move RT bitmap and summary information to the rtgroup Darrick J. Wong
2024-10-17 19:02 ` [PATCH 13/21] xfs: support creating per-RTG files in growfs Darrick J. Wong
2024-10-17 19:02 ` [PATCH 14/21] xfs: remove XFS_ILOCK_RT* Darrick J. Wong
2024-10-17 19:02 ` [PATCH 15/21] xfs: calculate RT bitmap and summary blocks based on sb_rextents Darrick J. Wong
2024-10-17 19:02 ` [PATCH 16/21] xfs: factor out a xfs_growfs_rt_alloc_fake_mount helper Darrick J. Wong
2024-10-17 19:02 ` [PATCH 17/21] xfs: use xfs_growfs_rt_alloc_fake_mount in xfs_growfs_rt_alloc_blocks Darrick J. Wong
2024-10-17 19:02 ` [PATCH 18/21] xfs: factor out a xfs_growfs_check_rtgeom helper Darrick J. Wong
2024-10-17 19:03 ` [PATCH 19/21] xfs: refactor xfs_rtbitmap_blockcount Darrick J. Wong
2024-10-17 19:03 ` [PATCH 20/21] xfs: refactor xfs_rtsummary_blockcount Darrick J. Wong
2024-10-17 19:03 ` [PATCH 21/21] xfs: make RT extent numbers relative to the rtgroup Darrick J. Wong
2024-10-17 18:47 ` [PATCHSET v5.1 5/9] xfs: preparation for realtime allocation groups Darrick J. Wong
2024-10-17 19:03 ` [PATCH 1/2] xfs: fix rt device offset calculations for FITRIM Darrick J. Wong
2024-10-17 19:03 ` [PATCH 2/2] iomap: add a merge boundary flag Darrick J. Wong
2024-10-17 18:47 ` [PATCHSET v5.1 6/9] xfs: shard the realtime section Darrick J. Wong
2024-10-17 19:04 ` [PATCH 01/34] xfs: define the format of rt groups Darrick J. Wong
2024-10-17 19:04 ` [PATCH 02/34] xfs: check the realtime superblock at mount time Darrick J. Wong
2024-10-17 19:04 ` [PATCH 03/34] xfs: update realtime super every time we update the primary fs super Darrick J. Wong
2024-10-17 19:04 ` [PATCH 04/34] xfs: export realtime group geometry via XFS_FSOP_GEOM Darrick J. Wong
2024-10-17 19:04 ` [PATCH 05/34] xfs: check that rtblock extents do not break rtsupers or rtgroups Darrick J. Wong
2024-10-17 19:04 ` [PATCH 06/34] xfs: add a helper to prevent bmap merges across rtgroup boundaries Darrick J. Wong
2024-10-17 19:05 ` [PATCH 07/34] xfs: add frextents to the lazysbcounters when rtgroups enabled Darrick J. Wong
2024-10-17 19:05 ` [PATCH 08/34] xfs: convert sick_map loops to use ARRAY_SIZE Darrick J. Wong
2024-10-17 19:05 ` [PATCH 09/34] xfs: record rt group metadata errors in the health system Darrick J. Wong
2024-10-17 19:05 ` [PATCH 10/34] xfs: export the geometry of realtime groups to userspace Darrick J. Wong
2024-10-17 19:05 ` [PATCH 11/34] xfs: add block headers to realtime bitmap and summary blocks Darrick J. Wong
2024-10-17 19:05 ` [PATCH 12/34] xfs: encode the rtbitmap in big endian format Darrick J. Wong
2024-10-17 19:06 ` [PATCH 13/34] xfs: encode the rtsummary " Darrick J. Wong
2024-10-17 19:06 ` [PATCH 14/34] xfs: grow the realtime section when realtime groups are enabled Darrick J. Wong
2024-10-17 19:06 ` [PATCH 15/34] xfs: store rtgroup information with a bmap intent Darrick J. Wong
2024-10-17 19:06 ` [PATCH 16/34] xfs: force swapext to a realtime file to use the file content exchange ioctl Darrick J. Wong
2024-10-17 19:06 ` [PATCH 17/34] xfs: support logging EFIs for realtime extents Darrick J. Wong
2024-10-17 19:07 ` [PATCH 18/34] xfs: support error injection when freeing rt extents Darrick J. Wong
2024-10-17 19:07 ` [PATCH 19/34] xfs: use realtime EFI to free extents when rtgroups are enabled Darrick J. Wong
2024-10-17 19:07 ` [PATCH 20/34] xfs: don't merge ioends across RTGs Darrick J. Wong
2024-10-17 19:07 ` [PATCH 21/34] xfs: make the RT allocator rtgroup aware Darrick J. Wong
2024-10-17 19:07 ` [PATCH 22/34] xfs: don't coalesce file mappings that cross rtgroup boundaries in scrub Darrick J. Wong
2024-10-17 19:07 ` [PATCH 23/34] xfs: scrub the realtime group superblock Darrick J. Wong
2024-10-17 19:08 ` [PATCH 24/34] xfs: repair " Darrick J. Wong
2024-10-17 19:08 ` [PATCH 25/34] xfs: scrub metadir paths for rtgroup metadata Darrick J. Wong
2024-10-17 19:08 ` [PATCH 26/34] xfs: mask off the rtbitmap and summary inodes when metadir in use Darrick J. Wong
2024-10-17 19:08 ` [PATCH 27/34] xfs: create helpers to deal with rounding xfs_fileoff_t to rtx boundaries Darrick J. Wong
2024-10-17 19:08 ` [PATCH 28/34] xfs: create helpers to deal with rounding xfs_filblks_t " Darrick J. Wong
2024-10-17 19:08 ` [PATCH 29/34] xfs: make xfs_rtblock_t a segmented address like xfs_fsblock_t Darrick J. Wong
2024-10-22 5:54 ` Christoph Hellwig
2024-10-17 19:09 ` [PATCH 30/34] xfs: adjust min_block usage in xfs_verify_agbno Darrick J. Wong
2024-10-17 19:09 ` [PATCH 31/34] xfs: move the min and max group block numbers to xfs_group Darrick J. Wong
2024-10-17 19:09 ` [PATCH 32/34] xfs: port the perag discard code to handle generic groups Darrick J. Wong
2024-10-17 19:09 ` [PATCH 33/34] xfs: implement busy extent tracking for rtgroups Darrick J. Wong
2024-10-17 19:09 ` [PATCH 34/34] xfs: use rtgroup busy extent list for FITRIM Darrick J. Wong
2024-10-17 18:47 ` [PATCHSET v5.1 7/9] xfs: persist quota options with metadir Darrick J. Wong
2024-10-17 19:10 ` [PATCH 1/4] xfs: refactor xfs_qm_destroy_quotainos Darrick J. Wong
2024-10-17 19:10 ` [PATCH 2/4] xfs: use metadir for quota inodes Darrick J. Wong
2024-10-17 19:10 ` [PATCH 3/4] xfs: scrub quota file metapaths Darrick J. Wong
2024-10-17 19:10 ` [PATCH 4/4] xfs: persist quota flags with metadir Darrick J. Wong
2024-10-17 18:47 ` [PATCHSET v5.1 8/9] xfs: enable quota for realtime volumes Darrick J. Wong
2024-10-17 19:10 ` [PATCH 1/6] xfs: fix chown with rt quota Darrick J. Wong
2024-10-17 19:10 ` [PATCH 2/6] xfs: advertise realtime quota support in the xqm stat files Darrick J. Wong
2024-10-22 5:54 ` Christoph Hellwig
2024-10-17 19:11 ` [PATCH 3/6] xfs: report realtime block quota limits on realtime directories Darrick J. Wong
2024-10-17 19:11 ` [PATCH 4/6] xfs: create quota preallocation watermarks for realtime quota Darrick J. Wong
2024-10-17 19:11 ` [PATCH 5/6] xfs: reserve quota for realtime files correctly Darrick J. Wong
2024-10-17 19:11 ` [PATCH 6/6] xfs: enable realtime quota again Darrick J. Wong
2024-10-17 18:47 ` [PATCHSET v5.1 9/9] xfs: enable metadir Darrick J. Wong
2024-10-17 19:11 ` [PATCH 1/2] xfs: update sb field checks when metadir is turned on Darrick J. Wong
2024-10-17 19:11 ` [PATCH 2/2] xfs: enable metadata directory feature Darrick J. Wong
2024-10-17 23:27 ` [PATCHBOMB 6.13 v5.1] xfs: metadata directories and realtime groups Dave Chinner
2024-10-18 23:11 ` Darrick J. Wong
-- strict thread matches above, loose matches on Subject: below --
2024-11-05 22:04 [PATCHSET v5.5 02/10] xfs: create a generic allocation group structure Darrick J. Wong
2024-11-05 22:14 ` [PATCH 07/16] xfs: move draining of deferred operations to the generic " Darrick J. Wong
2024-10-11 0:33 [PATCHSET v5.0 2/9] xfs: create a generic allocation " Darrick J. Wong
2024-10-11 0:46 ` [PATCH 07/16] xfs: move draining of deferred operations to the generic " 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=172919068795.3450737.9855267063462898076.stgit@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=hch@lst.de \
--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