All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: djwong@kernel.org
Cc: linux-xfs@vger.kernel.org
Subject: [PATCH 01/22] xfs: create incore realtime group structures
Date: Fri, 30 Dec 2022 14:17:52 -0800	[thread overview]
Message-ID: <167243867284.712847.15864310421589015183.stgit@magnolia> (raw)
In-Reply-To: <167243867242.712847.10106105868862621775.stgit@magnolia>

From: Darrick J. Wong <djwong@kernel.org>

Create an incore object that will contain information about a realtime
allocation group.  This will eventually enable us to shard the realtime
section in a similar manner to how we shard the data section.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 fs/xfs/Makefile             |    1 
 fs/xfs/libxfs/xfs_format.h  |    8 ++
 fs/xfs/libxfs/xfs_rtgroup.c |  214 +++++++++++++++++++++++++++++++++++++++++++
 fs/xfs/libxfs/xfs_rtgroup.h |  121 ++++++++++++++++++++++++
 fs/xfs/libxfs/xfs_sb.c      |    5 +
 fs/xfs/libxfs/xfs_types.h   |    4 +
 fs/xfs/xfs_log_recover.c    |    6 +
 fs/xfs/xfs_mount.c          |   12 ++
 fs/xfs/xfs_mount.h          |    6 +
 fs/xfs/xfs_rtalloc.c        |   14 ++-
 fs/xfs/xfs_super.c          |    2 
 fs/xfs/xfs_trace.h          |   34 +++++++
 12 files changed, 423 insertions(+), 4 deletions(-)
 create mode 100644 fs/xfs/libxfs/xfs_rtgroup.c
 create mode 100644 fs/xfs/libxfs/xfs_rtgroup.h


diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile
index 3d74696755c3..135a403c0edc 100644
--- a/fs/xfs/Makefile
+++ b/fs/xfs/Makefile
@@ -57,6 +57,7 @@ xfs-y				+= $(addprefix libxfs/, \
 # xfs_rtbitmap is shared with libxfs
 xfs-$(CONFIG_XFS_RT)		+= $(addprefix libxfs/, \
 				   xfs_rtbitmap.o \
+				   xfs_rtgroup.o \
 				   )
 
 # highlevel code
diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
index 946870eb492c..ca87a3f8704a 100644
--- a/fs/xfs/libxfs/xfs_format.h
+++ b/fs/xfs/libxfs/xfs_format.h
@@ -184,6 +184,14 @@ typedef struct xfs_sb {
 	 */
 	xfs_ino_t	sb_metadirino;
 
+	/*
+	 * Realtime group geometry information.  On disk these fields live in
+	 * the rsumino slot, but we cache them separately in the in-core super
+	 * for easy access.
+	 */
+	xfs_rgblock_t	sb_rgblocks;	/* size of a realtime group */
+	xfs_rgnumber_t	sb_rgcount;	/* number of realtime groups */
+
 	/* must be padded to 64 bit alignment */
 } xfs_sb_t;
 
diff --git a/fs/xfs/libxfs/xfs_rtgroup.c b/fs/xfs/libxfs/xfs_rtgroup.c
new file mode 100644
index 000000000000..ced2bd896106
--- /dev/null
+++ b/fs/xfs/libxfs/xfs_rtgroup.c
@@ -0,0 +1,214 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2022 Oracle.  All Rights Reserved.
+ * Author: Darrick J. Wong <djwong@kernel.org>
+ */
+#include "xfs.h"
+#include "xfs_fs.h"
+#include "xfs_shared.h"
+#include "xfs_format.h"
+#include "xfs_trans_resv.h"
+#include "xfs_bit.h"
+#include "xfs_sb.h"
+#include "xfs_mount.h"
+#include "xfs_btree.h"
+#include "xfs_alloc_btree.h"
+#include "xfs_rmap_btree.h"
+#include "xfs_alloc.h"
+#include "xfs_ialloc.h"
+#include "xfs_rmap.h"
+#include "xfs_ag.h"
+#include "xfs_ag_resv.h"
+#include "xfs_health.h"
+#include "xfs_error.h"
+#include "xfs_bmap.h"
+#include "xfs_defer.h"
+#include "xfs_log_format.h"
+#include "xfs_trans.h"
+#include "xfs_trace.h"
+#include "xfs_inode.h"
+#include "xfs_icache.h"
+#include "xfs_rtgroup.h"
+#include "xfs_rtbitmap.h"
+
+/*
+ * Passive reference counting access wrappers to the rtgroup structures.  If
+ * the rtgroup structure is to be freed, the freeing code is responsible for
+ * cleaning up objects with passive references before freeing the structure.
+ */
+struct xfs_rtgroup *
+xfs_rtgroup_get(
+	struct xfs_mount	*mp,
+	xfs_rgnumber_t		rgno)
+{
+	struct xfs_rtgroup	*rtg;
+	int			ref = 0;
+
+	rcu_read_lock();
+	rtg = radix_tree_lookup(&mp->m_rtgroup_tree, rgno);
+	if (rtg) {
+		ASSERT(atomic_read(&rtg->rtg_ref) >= 0);
+		ref = atomic_inc_return(&rtg->rtg_ref);
+	}
+	rcu_read_unlock();
+	trace_xfs_rtgroup_get(mp, rgno, ref, _RET_IP_);
+	return rtg;
+}
+
+struct xfs_rtgroup *
+xfs_rtgroup_bump(
+	struct xfs_rtgroup	*rtg)
+{
+	if (!atomic_inc_not_zero(&rtg->rtg_ref)) {
+		ASSERT(0);
+		return NULL;
+	}
+
+	trace_xfs_rtgroup_bump(rtg->rtg_mount, rtg->rtg_rgno,
+			atomic_read(&rtg->rtg_ref), _RET_IP_);
+	return rtg;
+}
+
+void
+xfs_rtgroup_put(
+	struct xfs_rtgroup	*rtg)
+{
+	int			ref;
+
+	ASSERT(atomic_read(&rtg->rtg_ref) > 0);
+	ref = atomic_dec_return(&rtg->rtg_ref);
+	trace_xfs_rtgroup_put(rtg->rtg_mount, rtg->rtg_rgno, ref, _RET_IP_);
+}
+
+int
+xfs_initialize_rtgroups(
+	struct xfs_mount	*mp,
+	xfs_rgnumber_t		rgcount)
+{
+	struct xfs_rtgroup	*rtg;
+	xfs_rgnumber_t		index;
+	xfs_rgnumber_t		first_initialised = NULLRGNUMBER;
+	int			error;
+
+	if (!xfs_has_rtgroups(mp))
+		return 0;
+
+	/*
+	 * Walk the current rtgroup tree so we don't try to initialise rt
+	 * groups that already exist (growfs case). Allocate and insert all the
+	 * rtgroups we don't find ready for initialisation.
+	 */
+	for (index = 0; index < rgcount; index++) {
+		rtg = xfs_rtgroup_get(mp, index);
+		if (rtg) {
+			xfs_rtgroup_put(rtg);
+			continue;
+		}
+
+		rtg = kmem_zalloc(sizeof(struct xfs_rtgroup), KM_MAYFAIL);
+		if (!rtg) {
+			error = -ENOMEM;
+			goto out_unwind_new_rtgs;
+		}
+		rtg->rtg_rgno = index;
+		rtg->rtg_mount = mp;
+
+		error = radix_tree_preload(GFP_NOFS);
+		if (error)
+			goto out_free_rtg;
+
+		spin_lock(&mp->m_rtgroup_lock);
+		if (radix_tree_insert(&mp->m_rtgroup_tree, index, rtg)) {
+			WARN_ON_ONCE(1);
+			spin_unlock(&mp->m_rtgroup_lock);
+			radix_tree_preload_end();
+			error = -EEXIST;
+			goto out_free_rtg;
+		}
+		spin_unlock(&mp->m_rtgroup_lock);
+		radix_tree_preload_end();
+
+#ifdef __KERNEL__
+		/* Place kernel structure only init below this point. */
+		spin_lock_init(&rtg->rtg_state_lock);
+#endif /* __KERNEL__ */
+
+		/* first new rtg is fully initialized */
+		if (first_initialised == NULLRGNUMBER)
+			first_initialised = index;
+	}
+
+	return 0;
+
+out_free_rtg:
+	kmem_free(rtg);
+out_unwind_new_rtgs:
+	/* unwind any prior newly initialized rtgs */
+	for (index = first_initialised; index < rgcount; index++) {
+		rtg = radix_tree_delete(&mp->m_rtgroup_tree, index);
+		if (!rtg)
+			break;
+		kmem_free(rtg);
+	}
+	return error;
+}
+
+STATIC void
+__xfs_free_rtgroups(
+	struct rcu_head		*head)
+{
+	struct xfs_rtgroup	*rtg;
+
+	rtg = container_of(head, struct xfs_rtgroup, rcu_head);
+	kmem_free(rtg);
+}
+
+/*
+ * Free up the rtgroup resources associated with the mount structure.
+ */
+void
+xfs_free_rtgroups(
+	struct xfs_mount	*mp)
+{
+	struct xfs_rtgroup	*rtg;
+	xfs_rgnumber_t		rgno;
+
+	if (!xfs_has_rtgroups(mp))
+		return;
+
+	for (rgno = 0; rgno < mp->m_sb.sb_rgcount; rgno++) {
+		spin_lock(&mp->m_rtgroup_lock);
+		rtg = radix_tree_delete(&mp->m_rtgroup_tree, rgno);
+		spin_unlock(&mp->m_rtgroup_lock);
+		ASSERT(rtg);
+		XFS_IS_CORRUPT(rtg->rtg_mount, atomic_read(&rtg->rtg_ref) != 0);
+
+		call_rcu(&rtg->rcu_head, __xfs_free_rtgroups);
+	}
+}
+
+/* Find the size of the rtgroup, in blocks. */
+static xfs_rgblock_t
+__xfs_rtgroup_block_count(
+	struct xfs_mount	*mp,
+	xfs_rgnumber_t		rgno,
+	xfs_rgnumber_t		rgcount,
+	xfs_rfsblock_t		rblocks)
+{
+	ASSERT(rgno < rgcount);
+
+	if (rgno < rgcount - 1)
+		return mp->m_sb.sb_rgblocks;
+	return xfs_rtb_rounddown_rtx(mp,
+			rblocks - (rgno * mp->m_sb.sb_rgblocks));
+}
+
+/* Compute the number of blocks in this realtime group. */
+xfs_rgblock_t
+xfs_rtgroup_block_count(
+	struct xfs_mount	*mp,
+	xfs_rgnumber_t		rgno)
+{
+	return __xfs_rtgroup_block_count(mp, rgno, mp->m_sb.sb_rgcount,
+			mp->m_sb.sb_rblocks);
+}
diff --git a/fs/xfs/libxfs/xfs_rtgroup.h b/fs/xfs/libxfs/xfs_rtgroup.h
new file mode 100644
index 000000000000..f414218a66f2
--- /dev/null
+++ b/fs/xfs/libxfs/xfs_rtgroup.h
@@ -0,0 +1,121 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (C) 2022 Oracle.  All Rights Reserved.
+ * Author: Darrick J. Wong <djwong@kernel.org>
+ */
+#ifndef __LIBXFS_RTGROUP_H
+#define __LIBXFS_RTGROUP_H 1
+
+struct xfs_mount;
+struct xfs_trans;
+
+/*
+ * Realtime group incore structure, similar to the per-AG structure.
+ */
+struct xfs_rtgroup {
+	struct xfs_mount	*rtg_mount;
+	xfs_rgnumber_t		rtg_rgno;
+	atomic_t		rtg_ref;
+
+	/* for rcu-safe freeing */
+	struct rcu_head		rcu_head;
+
+	/* Number of blocks in this group */
+	xfs_rgblock_t		rtg_blockcount;
+
+#ifdef __KERNEL__
+	/* -- kernel only structures below this line -- */
+	spinlock_t		rtg_state_lock;
+#endif /* __KERNEL__ */
+};
+
+#ifdef CONFIG_XFS_RT
+struct xfs_rtgroup *xfs_rtgroup_get(struct xfs_mount *mp, xfs_rgnumber_t rgno);
+struct xfs_rtgroup *xfs_rtgroup_bump(struct xfs_rtgroup *rtg);
+void xfs_rtgroup_put(struct xfs_rtgroup *rtg);
+int xfs_initialize_rtgroups(struct xfs_mount *mp, xfs_rgnumber_t rgcount);
+void xfs_free_rtgroups(struct xfs_mount *mp);
+#else
+static inline struct xfs_rtgroup *
+xfs_rtgroup_get(
+	struct xfs_mount	*mp,
+	xfs_rgnumber_t		rgno)
+{
+	return NULL;
+}
+static inline struct xfs_rtgroup *xfs_rtgroup_bump(struct xfs_rtgroup *rtg)
+{
+	ASSERT(rtg == NULL);
+	return NULL;
+}
+# define xfs_rtgroup_put(rtg)			((void)0)
+# define xfs_initialize_rtgroups(mp, rgcount)	(0)
+# define xfs_free_rtgroups(mp)			((void)0)
+#endif /* CONFIG_XFS_RT */
+
+/*
+ * rt group iteration APIs
+ */
+static inline struct xfs_rtgroup *
+xfs_rtgroup_next(
+	struct xfs_rtgroup	*rtg,
+	xfs_rgnumber_t		*rgno,
+	xfs_rgnumber_t		end_rgno)
+{
+	struct xfs_mount	*mp = rtg->rtg_mount;
+
+	*rgno = rtg->rtg_rgno + 1;
+	xfs_rtgroup_put(rtg);
+	if (*rgno > end_rgno)
+		return NULL;
+	return xfs_rtgroup_get(mp, *rgno);
+}
+
+#define for_each_rtgroup_range(mp, rgno, end_rgno, rtg) \
+	for ((rtg) = xfs_rtgroup_get((mp), (rgno)); \
+		(rtg) != NULL; \
+		(rtg) = xfs_rtgroup_next((rtg), &(rgno), (end_rgno)))
+
+#define for_each_rtgroup_from(mp, rgno, rtg) \
+	for_each_rtgroup_range((mp), (rgno), (mp)->m_sb.sb_rgcount - 1, (rtg))
+
+
+#define for_each_rtgroup(mp, rgno, rtg) \
+	(rgno) = 0; \
+	for_each_rtgroup_from((mp), (rgno), (rtg))
+
+static inline bool
+xfs_verify_rgbno(
+	struct xfs_rtgroup	*rtg,
+	xfs_rgblock_t		rgbno)
+{
+	if (rgbno >= rtg->rtg_blockcount)
+		return false;
+	if (rgbno < rtg->rtg_mount->m_sb.sb_rextsize)
+		return false;
+	return true;
+}
+
+static inline bool
+xfs_verify_rgbext(
+	struct xfs_rtgroup	*rtg,
+	xfs_rgblock_t		rgbno,
+	xfs_rgblock_t		len)
+{
+	if (rgbno + len <= rgbno)
+		return false;
+
+	if (!xfs_verify_rgbno(rtg, rgbno))
+		return false;
+
+	return xfs_verify_rgbno(rtg, rgbno + len - 1);
+}
+
+#ifdef CONFIG_XFS_RT
+xfs_rgblock_t xfs_rtgroup_block_count(struct xfs_mount *mp,
+		xfs_rgnumber_t rgno);
+#else
+# define xfs_rtgroup_block_count(mp, rgno)	(0)
+#endif /* CONFIG_XFS_RT */
+
+#endif /* __LIBXFS_RTGROUP_H */
diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c
index 83930abf935f..48cfb9c8296b 100644
--- a/fs/xfs/libxfs/xfs_sb.c
+++ b/fs/xfs/libxfs/xfs_sb.c
@@ -641,6 +641,9 @@ __xfs_sb_from_disk(
 		to->sb_gquotino = NULLFSINO;
 		to->sb_pquotino = NULLFSINO;
 	}
+
+	to->sb_rgcount = 0;
+	to->sb_rgblocks = 0;
 }
 
 void
@@ -954,6 +957,8 @@ xfs_sb_mount_common(
 	mp->m_blockwmask = mp->m_blockwsize - 1;
 	mp->m_rtxblklog = log2_if_power2(sbp->sb_rextsize);
 	mp->m_rtxblkmask = mask64_if_power2(sbp->sb_rextsize);
+	mp->m_rgblklog = 0;
+	mp->m_rgblkmask = 0;
 
 	mp->m_alloc_mxr[0] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 1);
 	mp->m_alloc_mxr[1] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 0);
diff --git a/fs/xfs/libxfs/xfs_types.h b/fs/xfs/libxfs/xfs_types.h
index f4615c5be34f..c27c84561b5e 100644
--- a/fs/xfs/libxfs/xfs_types.h
+++ b/fs/xfs/libxfs/xfs_types.h
@@ -9,10 +9,12 @@
 typedef uint32_t	prid_t;		/* project ID */
 
 typedef uint32_t	xfs_agblock_t;	/* blockno in alloc. group */
+typedef uint32_t	xfs_rgblock_t;	/* blockno in realtime group */
 typedef uint32_t	xfs_agino_t;	/* inode # within allocation grp */
 typedef uint32_t	xfs_extlen_t;	/* extent length in blocks */
 typedef uint32_t	xfs_rtxlen_t;	/* file extent length in rtextents */
 typedef uint32_t	xfs_agnumber_t;	/* allocation group number */
+typedef uint32_t	xfs_rgnumber_t;	/* realtime group number */
 typedef uint64_t	xfs_extnum_t;	/* # of extents in a file */
 typedef uint32_t	xfs_aextnum_t;	/* # extents in an attribute fork */
 typedef int64_t		xfs_fsize_t;	/* bytes in a file */
@@ -54,7 +56,9 @@ typedef void *		xfs_failaddr_t;
 #define NULLRTEXTNO	((xfs_rtxnum_t)-1)
 
 #define	NULLAGBLOCK	((xfs_agblock_t)-1)
+#define NULLRGBLOCK	((xfs_rgblock_t)-1)
 #define	NULLAGNUMBER	((xfs_agnumber_t)-1)
+#define	NULLRGNUMBER	((xfs_rgnumber_t)-1)
 
 #define NULLCOMMITLSN	((xfs_lsn_t)-1)
 
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 006ceff1959d..8e6da3f34585 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -28,6 +28,7 @@
 #include "xfs_ag.h"
 #include "xfs_quota.h"
 #include "xfs_reflink.h"
+#include "xfs_rtgroup.h"
 
 #define BLK_AVG(blk1, blk2)	((blk1+blk2) >> 1)
 
@@ -3341,6 +3342,11 @@ xlog_do_recover(
 		xfs_warn(mp, "Failed post-recovery per-ag init: %d", error);
 		return error;
 	}
+	error = xfs_initialize_rtgroups(mp, sbp->sb_rgcount);
+	if (error) {
+		xfs_warn(mp, "Failed post-recovery rtgroup init: %d", error);
+		return error;
+	}
 	mp->m_alloc_set_aside = xfs_alloc_set_aside(mp);
 
 	/* Normal transactions can now occur */
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 3957c60d5d07..bcfeaaf11536 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -35,6 +35,7 @@
 #include "xfs_trace.h"
 #include "xfs_ag.h"
 #include "xfs_imeta.h"
+#include "xfs_rtgroup.h"
 
 static DEFINE_MUTEX(xfs_uuid_table_mutex);
 static int xfs_uuid_table_size;
@@ -830,10 +831,16 @@ xfs_mountfs(
 		goto out_free_dir;
 	}
 
+	error = xfs_initialize_rtgroups(mp, sbp->sb_rgcount);
+	if (error) {
+		xfs_warn(mp, "Failed rtgroup init: %d", error);
+		goto out_free_perag;
+	}
+
 	if (XFS_IS_CORRUPT(mp, !sbp->sb_logblocks)) {
 		xfs_warn(mp, "no log defined");
 		error = -EFSCORRUPTED;
-		goto out_free_perag;
+		goto out_free_rtgroup;
 	}
 
 	error = xfs_inodegc_register_shrinker(mp);
@@ -1058,6 +1065,8 @@ xfs_mountfs(
 	if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp)
 		xfs_buftarg_drain(mp->m_logdev_targp);
 	xfs_buftarg_drain(mp->m_ddev_targp);
+ out_free_rtgroup:
+	xfs_free_rtgroups(mp);
  out_free_perag:
 	xfs_free_perag(mp);
  out_free_dir:
@@ -1138,6 +1147,7 @@ xfs_unmountfs(
 	xfs_errortag_clearall(mp);
 #endif
 	unregister_shrinker(&mp->m_inodegc_shrinker);
+	xfs_free_rtgroups(mp);
 	xfs_free_perag(mp);
 
 	xfs_errortag_del(mp);
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index bad926f3e102..674938008a97 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -119,6 +119,7 @@ typedef struct xfs_mount {
 	uint8_t			m_agno_log;	/* log #ag's */
 	uint8_t			m_sectbb_log;	/* sectlog - BBSHIFT */
 	int8_t			m_rtxblklog;	/* log2 of rextsize, if possible */
+	int8_t			m_rgblklog;	/* log2 of rt group sz if possible */
 	uint			m_blockmask;	/* sb_blocksize-1 */
 	uint			m_blockwsize;	/* sb_blocksize in words */
 	uint			m_blockwmask;	/* blockwsize-1 */
@@ -153,6 +154,7 @@ typedef struct xfs_mount {
 	uint64_t		m_low_space[XFS_LOWSP_MAX];
 	uint64_t		m_low_rtexts[XFS_LOWSP_MAX];
 	uint64_t		m_rtxblkmask;	/* rt extent block mask */
+	uint64_t		m_rgblkmask;	/* rt group block mask */
 	struct xfs_ino_geometry	m_ino_geo;	/* inode geometry */
 	struct xfs_trans_resv	m_resv;		/* precomputed res values */
 						/* low free space thresholds */
@@ -201,6 +203,8 @@ typedef struct xfs_mount {
 	 */
 	atomic64_t		m_allocbt_blks;
 
+	struct radix_tree_root	m_rtgroup_tree;	/* per-rt group info */
+	spinlock_t		m_rtgroup_lock;	/* lock for m_rtgroup_tree */
 	struct radix_tree_root	m_perag_tree;	/* per-ag accounting info */
 	spinlock_t		m_perag_lock;	/* lock for m_perag_tree */
 	uint64_t		m_resblks;	/* total reserved blocks */
@@ -285,6 +289,7 @@ typedef struct xfs_mount {
 #define XFS_FEAT_NEEDSREPAIR	(1ULL << 25)	/* needs xfs_repair */
 #define XFS_FEAT_NREXT64	(1ULL << 26)	/* large extent counters */
 #define XFS_FEAT_METADIR	(1ULL << 27)	/* metadata directory tree */
+#define XFS_FEAT_RTGROUPS	(1ULL << 28)	/* realtime groups */
 
 /* Mount features */
 #define XFS_FEAT_NOATTR2	(1ULL << 48)	/* disable attr2 creation */
@@ -349,6 +354,7 @@ __XFS_HAS_FEAT(bigtime, BIGTIME)
 __XFS_HAS_FEAT(needsrepair, NEEDSREPAIR)
 __XFS_HAS_FEAT(large_extent_counts, NREXT64)
 __XFS_HAS_FEAT(metadir, METADIR)
+__XFS_HAS_FEAT(rtgroups, RTGROUPS)
 
 /*
  * Mount features
diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
index c131738efd0f..3b13352cfbfc 100644
--- a/fs/xfs/xfs_rtalloc.c
+++ b/fs/xfs/xfs_rtalloc.c
@@ -25,6 +25,7 @@
 #include "xfs_da_format.h"
 #include "xfs_imeta.h"
 #include "xfs_rtbitmap.h"
+#include "xfs_rtgroup.h"
 
 /*
  * Realtime metadata files are not quite regular files because userspace can't
@@ -1409,10 +1410,12 @@ xfs_rtmount_iread_extents(
  */
 int					/* error */
 xfs_rtmount_inodes(
-	xfs_mount_t	*mp)		/* file system mount structure */
+	struct xfs_mount	*mp)		/* file system mount structure */
 {
-	int		error;		/* error return value */
-	xfs_sb_t	*sbp;
+	struct xfs_sb		*sbp;
+	struct xfs_rtgroup	*rtg;
+	xfs_rgnumber_t		rgno;
+	int			error;		/* error return value */
 
 	sbp = &mp->m_sb;
 	error = xfs_rt_iget(mp, mp->m_sb.sb_rbmino, &xfs_rbmip_key,
@@ -1439,6 +1442,11 @@ xfs_rtmount_inodes(
 	if (error)
 		goto out_rele_summary;
 
+	for_each_rtgroup(mp, rgno, rtg) {
+		rtg->rtg_blockcount = xfs_rtgroup_block_count(mp,
+							      rtg->rtg_rgno);
+	}
+
 	xfs_alloc_rsum_cache(mp, sbp->sb_rbmblocks);
 	return 0;
 
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 19a22f9225e4..737c51333d09 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -1932,6 +1932,8 @@ static int xfs_init_fs_context(
 	spin_lock_init(&mp->m_agirotor_lock);
 	INIT_RADIX_TREE(&mp->m_perag_tree, GFP_ATOMIC);
 	spin_lock_init(&mp->m_perag_lock);
+	INIT_RADIX_TREE(&mp->m_rtgroup_tree, GFP_ATOMIC);
+	spin_lock_init(&mp->m_rtgroup_lock);
 	mutex_init(&mp->m_growlock);
 	INIT_WORK(&mp->m_flush_inodes_work, xfs_flush_inodes_worker);
 	INIT_DELAYED_WORK(&mp->m_reclaim_work, xfs_reclaim_worker);
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
index b92efe4eaeae..f72f694b4656 100644
--- a/fs/xfs/xfs_trace.h
+++ b/fs/xfs/xfs_trace.h
@@ -206,6 +206,40 @@ DEFINE_PERAG_REF_EVENT(xfs_perag_put);
 DEFINE_PERAG_REF_EVENT(xfs_perag_set_inode_tag);
 DEFINE_PERAG_REF_EVENT(xfs_perag_clear_inode_tag);
 
+#ifdef CONFIG_XFS_RT
+DECLARE_EVENT_CLASS(xfs_rtgroup_class,
+	TP_PROTO(struct xfs_mount *mp, xfs_rgnumber_t rgno, int refcount,
+		 unsigned long caller_ip),
+	TP_ARGS(mp, rgno, refcount, caller_ip),
+	TP_STRUCT__entry(
+		__field(dev_t, dev)
+		__field(xfs_rgnumber_t, rgno)
+		__field(int, refcount)
+		__field(unsigned long, caller_ip)
+	),
+	TP_fast_assign(
+		__entry->dev = mp->m_super->s_dev;
+		__entry->rgno = rgno;
+		__entry->refcount = refcount;
+		__entry->caller_ip = caller_ip;
+	),
+	TP_printk("dev %d:%d rgno 0x%x refcount %d caller %pS",
+		  MAJOR(__entry->dev), MINOR(__entry->dev),
+		  __entry->rgno,
+		  __entry->refcount,
+		  (char *)__entry->caller_ip)
+);
+
+#define DEFINE_RTGROUP_REF_EVENT(name)	\
+DEFINE_EVENT(xfs_rtgroup_class, name,	\
+	TP_PROTO(struct xfs_mount *mp, xfs_rgnumber_t rgno, int refcount,	\
+		 unsigned long caller_ip),					\
+	TP_ARGS(mp, rgno, refcount, caller_ip))
+DEFINE_RTGROUP_REF_EVENT(xfs_rtgroup_get);
+DEFINE_RTGROUP_REF_EVENT(xfs_rtgroup_bump);
+DEFINE_RTGROUP_REF_EVENT(xfs_rtgroup_put);
+#endif /* CONFIG_XFS_RT */
+
 TRACE_EVENT(xfs_inodegc_worker,
 	TP_PROTO(struct xfs_mount *mp, unsigned int shrinker_hits),
 	TP_ARGS(mp, shrinker_hits),


  reply	other threads:[~2022-12-31  1:27 UTC|newest]

Thread overview: 565+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-30 21:14 [NYE DELUGE 3/4] xfs: modernize the realtime volume Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 00/20] xfs: hoist inode operations to libxfs Darrick J. Wong
2022-12-30 22:17   ` [PATCH 01/20] xfs: move inode copy-on-write predicates to xfs_inode.[ch] Darrick J. Wong
2022-12-30 22:17   ` [PATCH 03/20] xfs: hoist inode flag conversion functions to libxfs Darrick J. Wong
2022-12-30 22:17   ` [PATCH 04/20] xfs: hoist project id get/set " Darrick J. Wong
2022-12-30 22:17   ` [PATCH 02/20] xfs: hoist extent size helpers " Darrick J. Wong
2022-12-30 22:17   ` [PATCH 05/20] xfs: pack icreate initialization parameters into a separate structure Darrick J. Wong
2022-12-30 22:17   ` [PATCH 10/20] xfs: push xfs_icreate_args creation out of xfs_create* Darrick J. Wong
2022-12-30 22:17   ` [PATCH 11/20] xfs: wrap inode creation dqalloc calls Darrick J. Wong
2022-12-30 22:17   ` [PATCH 07/20] xfs: use xfs_trans_ichgtime to set times when allocating inode Darrick J. Wong
2022-12-30 22:17   ` [PATCH 06/20] xfs: implement atime updates in xfs_trans_ichgtime Darrick J. Wong
2022-12-30 22:17   ` [PATCH 08/20] xfs: split new inode creation into two pieces Darrick J. Wong
2022-12-30 22:17   ` [PATCH 09/20] xfs: hoist new inode initialization functions to libxfs Darrick J. Wong
2022-12-30 22:17   ` [PATCH 12/20] xfs: hoist xfs_iunlink " Darrick J. Wong
2022-12-30 22:17   ` [PATCH 16/20] xfs: hoist inode free function " Darrick J. Wong
2022-12-30 22:17   ` [PATCH 15/20] xfs: create libxfs helper to link an existing inode into a directory Darrick J. Wong
2022-12-30 22:17   ` [PATCH 18/20] xfs: create libxfs helper to exchange two directory entries Darrick J. Wong
2022-12-30 22:17   ` [PATCH 14/20] xfs: create libxfs helper to link a new inode into a directory Darrick J. Wong
2022-12-30 22:17   ` [PATCH 13/20] xfs: hoist xfs_{bump,drop}link to libxfs Darrick J. Wong
2022-12-30 22:17   ` [PATCH 17/20] xfs: create libxfs helper to remove an existing inode/name from a directory Darrick J. Wong
2022-12-30 22:17   ` [PATCH 20/20] xfs: get rid of cross_rename Darrick J. Wong
2022-12-30 22:17   ` [PATCH 19/20] xfs: create libxfs helper to rename two directory entries Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 00/23] xfs: metadata inode directories Darrick J. Wong
2022-12-30 22:17   ` [PATCH 02/23] xfs: create imeta abstractions to get and set metadata inodes Darrick J. Wong
2022-12-30 22:17   ` [PATCH 01/23] xfs: don't use the incore struct xfs_sb for offsets into struct xfs_dsb Darrick J. Wong
2022-12-30 22:17   ` [PATCH 09/23] xfs: load metadata directory root at mount time Darrick J. Wong
2022-12-30 22:17   ` [PATCH 05/23] xfs: convert all users to xfs_imeta_log Darrick J. Wong
2022-12-30 22:17   ` [PATCH 06/23] xfs: iget for metadata inodes Darrick J. Wong
2022-12-30 22:17   ` [PATCH 04/23] xfs: refactor the v4 group/project inode pointer switch Darrick J. Wong
2022-12-30 22:17   ` [PATCH 08/23] xfs: update imeta transaction reservations for metadir Darrick J. Wong
2022-12-30 22:17   ` [PATCH 07/23] xfs: define the on-disk format for the metadir feature Darrick J. Wong
2022-12-30 22:17   ` [PATCH 03/23] xfs: create transaction reservations for metadata inode operations Darrick J. Wong
2022-12-30 22:17   ` [PATCH 10/23] xfs: convert metadata inode lookup keys to use paths Darrick J. Wong
2022-12-30 22:17   ` [PATCH 15/23] xfs: hide metadata inodes from everyone because they are special Darrick J. Wong
2022-12-30 22:17   ` [PATCH 13/23] xfs: ensure metadata directory paths exist before creating files Darrick J. Wong
2022-12-30 22:17   ` [PATCH 14/23] xfs: disable the agi rotor for metadata inodes Darrick J. Wong
2022-12-30 22:17   ` [PATCH 12/23] xfs: read and write metadata inode directory Darrick J. Wong
2022-12-30 22:17   ` [PATCH 16/23] xfs: advertise metadata directory feature Darrick J. Wong
2022-12-30 22:17   ` [PATCH 11/23] xfs: enforce metadata inode flag Darrick J. Wong
2022-12-30 22:17   ` [PATCH 23/23] xfs: enable metadata directory feature Darrick J. Wong
2022-12-30 22:17   ` [PATCH 22/23] xfs: don't check secondary super inode pointers when metadir enabled Darrick J. Wong
2022-12-30 22:17   ` [PATCH 19/23] xfs: record health problems with the metadata directory Darrick J. Wong
2022-12-30 22:17   ` [PATCH 20/23] xfs: scrub metadata directories Darrick J. Wong
2022-12-30 22:17   ` [PATCH 21/23] xfs: teach nlink scrubber to deal with metadata directory roots Darrick J. Wong
2022-12-30 22:17   ` [PATCH 18/23] xfs: enable creation of dynamically allocated metadir path structures Darrick J. Wong
2022-12-30 22:17   ` [PATCH 17/23] xfs: allow bulkstat to return metadata directories Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 00/14] xfs: refactor btrees to support records in inode root Darrick J. Wong
2022-12-30 22:17   ` [PATCH 03/14] xfs: refactor creation of bmap btree roots Darrick J. Wong
2022-12-30 22:17   ` [PATCH 02/14] xfs: refactor the allocation and freeing of incore inode fork " Darrick J. Wong
2022-12-30 22:17   ` [PATCH 01/14] xfs: replace shouty XFS_BM{BT,DR} macros Darrick J. Wong
2022-12-30 22:17   ` [PATCH 05/14] xfs: hoist the code that moves the incore inode fork broot memory Darrick J. Wong
2022-12-30 22:17   ` [PATCH 04/14] xfs: fix a sloppy memory handling bug in xfs_iroot_realloc Darrick J. Wong
2022-12-30 22:17   ` [PATCH 06/14] xfs: move the zero records logic into xfs_bmap_broot_space_calc Darrick J. Wong
2022-12-30 22:17   ` [PATCH 13/14] xfs: support storing records in the inode core root Darrick J. Wong
2022-12-30 22:17   ` [PATCH 07/14] xfs: rearrange xfs_iroot_realloc a bit Darrick J. Wong
2022-12-30 22:17   ` [PATCH 10/14] xfs: support leaves in the incore btree root block in xfs_iroot_realloc Darrick J. Wong
2022-12-30 22:17   ` [PATCH 12/14] xfs: hoist the node iroot update code out of xfs_btree_kill_iroot Darrick J. Wong
2022-12-30 22:17   ` [PATCH 11/14] xfs: hoist the node iroot update code out of xfs_btree_new_iroot Darrick J. Wong
2022-12-30 22:17   ` [PATCH 09/14] xfs: generalize the btree root reallocation function Darrick J. Wong
2022-12-30 22:17   ` [PATCH 08/14] xfs: standardize the btree maxrecs function parameters Darrick J. Wong
2022-12-30 22:17   ` [PATCH 14/14] xfs: update btree keys correctly when _insrec splits an inode root block Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 00/11] xfs: clean up realtime type usage Darrick J. Wong
2022-12-30 22:17   ` [PATCH 05/11] xfs: make sure maxlen is still congruent with prod when rounding down Darrick J. Wong
2022-12-30 22:17   ` [PATCH 04/11] xfs: rt stubs should return negative errnos when rt disabled Darrick J. Wong
2022-12-30 22:17   ` [PATCH 01/11] xfs: refactor realtime scrubbing context management Darrick J. Wong
2022-12-30 22:17   ` [PATCH 02/11] xfs: bump max fsgeom struct version Darrick J. Wong
2022-12-30 22:17   ` [PATCH 03/11] xfs: prevent rt growfs when quota is enabled Darrick J. Wong
2022-12-30 22:17   ` [PATCH 08/11] xfs: convert rt bitmap/summary block numbers to xfs_fileoff_t Darrick J. Wong
2022-12-30 22:17   ` [PATCH 11/11] xfs: convert rt extent numbers to xfs_rtxnum_t Darrick J. Wong
2022-12-30 22:17   ` [PATCH 06/11] xfs: move the xfs_rtbitmap.c declarations to xfs_rtbitmap.h Darrick J. Wong
2022-12-30 22:17   ` [PATCH 09/11] xfs: convert rt bitmap extent lengths to xfs_rtbxlen_t Darrick J. Wong
2022-12-30 22:17   ` [PATCH 10/11] xfs: rename xfs_verify_rtext to xfs_verify_rtbext Darrick J. Wong
2022-12-30 22:17   ` [PATCH 07/11] xfs: convert xfs_extlen_t to xfs_rtxlen_t in the rt allocator Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 0/7] xfs: refactor rt extent unit conversions Darrick J. Wong
2022-12-30 22:17   ` [PATCH 1/7] xfs: create a helper to convert rtextents to rtblocks Darrick J. Wong
2022-12-30 22:17   ` [PATCH 2/7] xfs: create a helper to compute leftovers of realtime extents Darrick J. Wong
2022-12-30 22:17   ` [PATCH 5/7] xfs: convert do_div calls to xfs_rtb_to_rtx helper calls Darrick J. Wong
2022-12-30 22:17   ` [PATCH 4/7] xfs: create helpers to convert rt block numbers to rt extent numbers Darrick J. Wong
2022-12-30 22:17   ` [PATCH 3/7] xfs: create a helper to compute leftovers of realtime extents Darrick J. Wong
2022-12-30 22:17   ` [PATCH 7/7] xfs: use shifting and masking when converting rt extents, if possible Darrick J. Wong
2022-12-30 22:17   ` [PATCH 6/7] xfs: create rt extent rounding helpers for realtime extent blocks Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 0/8] xfs: refactor rtbitmap/summary macros Darrick J. Wong
2022-12-30 22:17   ` [PATCH 1/8] xfs: convert the rtbitmap block and bit macros to static inline functions Darrick J. Wong
2022-12-30 22:17   ` [PATCH 8/8] xfs: use accessor functions for summary info words Darrick J. Wong
2022-12-30 22:17   ` [PATCH 2/8] xfs: remove XFS_BLOCKWSIZE and XFS_BLOCKWMASK macros Darrick J. Wong
2022-12-30 22:17   ` [PATCH 7/8] xfs: create helpers for rtsummary block/wordcount computations Darrick J. Wong
2022-12-30 22:17   ` [PATCH 3/8] xfs: convert open-coded xfs_rtword_t pointer accesses to helper Darrick J. Wong
2022-12-30 22:17   ` [PATCH 5/8] xfs: create helpers for rtbitmap block/wordcount computations Darrick J. Wong
2022-12-30 22:17   ` [PATCH 6/8] xfs: use accessor functions for bitmap words Darrick J. Wong
2022-12-30 22:17   ` [PATCH 4/8] xfs: convert rt summary macros to helpers Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 0/3] xfs: refactor realtime meta inode locking Darrick J. Wong
2022-12-30 22:17   ` [PATCH 1/3] xfs: use separate lock classes for realtime metadata inode ILOCKs Darrick J. Wong
2022-12-30 22:17   ` [PATCH 3/3] xfs: remove XFS_ILOCK_RT* Darrick J. Wong
2022-12-30 22:17   ` [PATCH 2/3] xfs: refactor realtime inode locking Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 00/22] xfsprogs: shard the realtime section Darrick J. Wong
2022-12-30 22:17   ` Darrick J. Wong [this message]
2022-12-30 22:17   ` [PATCH 05/22] xfs: write secondary realtime superblocks to disk Darrick J. Wong
2022-12-30 22:17   ` [PATCH 06/22] xfs: grow the realtime section when realtime groups are enabled Darrick J. Wong
2022-12-30 22:17   ` [PATCH 03/22] xfs: check the realtime superblock at mount time Darrick J. Wong
2022-12-30 22:17   ` [PATCH 04/22] xfs: update primary realtime super every time we update the primary fs super Darrick J. Wong
2022-12-30 22:17   ` [PATCH 07/22] xfs: always update secondary rt supers when we update secondary fs supers Darrick J. Wong
2022-12-30 22:17   ` [PATCH 08/22] xfs: export realtime group geometry via XFS_FSOP_GEOM Darrick J. Wong
2022-12-30 22:17   ` [PATCH 02/22] xfs: define the format of rt groups Darrick J. Wong
2022-12-30 22:17   ` [PATCH 11/22] xfs: record rt group superblock errors in the health system Darrick J. Wong
2022-12-30 22:17   ` [PATCH 09/22] xfs: check that rtblock extents do not overlap with the rt group metadata Darrick J. Wong
2022-12-30 22:17   ` [PATCH 14/22] xfs: add block headers to realtime bitmap blocks Darrick J. Wong
2022-12-30 22:17   ` [PATCH 13/22] xfs: export the geometry of realtime groups to userspace Darrick J. Wong
2022-12-30 22:17   ` [PATCH 10/22] xfs: add frextents to the lazysbcounters when rtgroups enabled Darrick J. Wong
2022-12-30 22:17   ` [PATCH 12/22] xfs: define locking primitives for realtime groups Darrick J. Wong
2022-12-30 22:17   ` [PATCH 15/22] xfs: encode the rtbitmap in little endian format Darrick J. Wong
2022-12-30 22:17   ` [PATCH 21/22] xfs: scrub each rtgroup's portion of the rtbitmap separately Darrick J. Wong
2022-12-30 22:17   ` [PATCH 17/22] xfs: encode the rtsummary in big endian format Darrick J. Wong
2022-12-30 22:17   ` [PATCH 19/22] xfs: scrub the realtime group superblock Darrick J. Wong
2022-12-30 22:17   ` [PATCH 16/22] xfs: add block headers to realtime summary blocks Darrick J. Wong
2022-12-30 22:17   ` [PATCH 20/22] xfs: repair secondary realtime group superblocks Darrick J. Wong
2022-12-30 22:17   ` [PATCH 22/22] xfs: enable realtime group feature Darrick J. Wong
2022-12-30 22:17   ` [PATCH 18/22] xfs: store rtgroup information with a bmap intent Darrick J. Wong
2022-12-30 22:17 ` [PATCHSET v1.0 0/3] xfsprogs: enable FITRIM for the realtime section Darrick J. Wong
2022-12-30 22:17   ` [PATCH 1/3] xfs: hoist data device FITRIM AG iteration to a separate function Darrick J. Wong
2022-12-30 22:17   ` [PATCH 2/3] xfs: convert xfs_trim_extents to use perag iteration macros Darrick J. Wong
2022-12-30 22:17   ` [PATCH 3/3] xfs: enable FITRIM on the realtime device Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 0/2] xfs: enable in-core block reservation for rt metadata Darrick J. Wong
2022-12-30 22:18   ` [PATCH 2/2] xfs: allow inode-based btrees to reserve space in the data device Darrick J. Wong
2022-12-30 22:18   ` [PATCH 1/2] xfs: simplify xfs_ag_resv_free signature Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 0/2] xfs: extent free log intent cleanups Darrick J. Wong
2022-12-30 22:18   ` [PATCH 1/2] xfs: clean up extent free log intent item tracepoint callsites Darrick J. Wong
2022-12-30 22:18   ` [PATCH 2/2] xfs: convert "skip_discard" to a proper flags bitset Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 0/2] xfs: widen EFI format to support rt Darrick J. Wong
2022-12-30 22:18   ` [PATCH 1/2] xfs: support logging EFIs for realtime extents Darrick J. Wong
2022-12-30 22:18   ` [PATCH 2/2] xfs: support error injection when freeing rt extents Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 0/5] xfs: rmap log intent cleanups Darrick J. Wong
2022-12-30 22:18   ` [PATCH 1/5] xfs: attach rtgroup objects to btree cursors Darrick J. Wong
2022-12-30 22:18   ` [PATCH 2/5] xfs: give rmap btree cursor error tracepoints their own class Darrick J. Wong
2022-12-30 22:18   ` [PATCH 3/5] xfs: prepare rmap btree tracepoints for widening Darrick J. Wong
2022-12-30 22:18   ` [PATCH 5/5] xfs: remove xfs_trans_set_rmap_flags Darrick J. Wong
2022-12-30 22:18   ` [PATCH 4/5] xfs: clean up rmap log intent item tracepoint callsites Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 00/38] xfs: realtime reverse-mapping support Darrick J. Wong
2022-12-30 22:18   ` [PATCH 06/38] xfs: add realtime rmap btree operations Darrick J. Wong
2022-12-30 22:18   ` [PATCH 01/38] xfs: prepare rmap btree cursor tracepoints for realtime Darrick J. Wong
2022-12-30 22:18   ` [PATCH 05/38] xfs: realtime rmap btree transaction reservations Darrick J. Wong
2022-12-30 22:18   ` [PATCH 04/38] xfs: define the on-disk realtime rmap btree format Darrick J. Wong
2022-12-30 22:18   ` [PATCH 03/38] xfs: introduce realtime rmap btree definitions Darrick J. Wong
2022-12-30 22:18   ` [PATCH 02/38] xfs: simplify the xfs_rmap_{alloc,free}_extent calling conventions Darrick J. Wong
2022-12-30 22:18   ` [PATCH 07/38] xfs: prepare rmap functions to deal with rtrmapbt Darrick J. Wong
2022-12-30 22:18   ` [PATCH 10/38] xfs: add realtime rmap btree block detection to log recovery Darrick J. Wong
2022-12-30 22:18   ` [PATCH 12/38] xfs: add realtime reverse map inode to metadata directory Darrick J. Wong
2022-12-30 22:18   ` [PATCH 13/38] xfs: add metadata reservations for realtime rmap btrees Darrick J. Wong
2022-12-30 22:18   ` [PATCH 09/38] xfs: support recovering rmap intent items targetting realtime extents Darrick J. Wong
2022-12-30 22:18   ` [PATCH 11/38] xfs: attach dquots to rt metadata files when starting quota Darrick J. Wong
2022-12-30 22:18   ` [PATCH 08/38] xfs: add a realtime flag to the rmap update log redo items Darrick J. Wong
2022-12-30 22:18   ` [PATCH 14/38] xfs: wire up a new inode fork type for the realtime rmap Darrick J. Wong
2022-12-30 22:18   ` [PATCH 18/38] xfs: rearrange xfs_fsmap.c a little bit Darrick J. Wong
2022-12-30 22:18   ` [PATCH 17/38] xfs: create routine to allocate and initialize a realtime rmap btree inode Darrick J. Wong
2022-12-30 22:18   ` [PATCH 20/38] xfs: fix integer overflows in the fsmap rtbitmap backend Darrick J. Wong
2022-12-30 22:18   ` [PATCH 15/38] xfs: use realtime EFI to free extents when realtime rmap is enabled Darrick J. Wong
2022-12-30 22:18   ` [PATCH 19/38] xfs: wire up getfsmap to the realtime reverse mapping btree Darrick J. Wong
2022-12-30 22:18   ` [PATCH 16/38] xfs: wire up rmap map and unmap to the realtime rmapbt Darrick J. Wong
2022-12-30 22:18   ` [PATCH 24/38] xfs: report realtime rmap btree corruption errors to the health system Darrick J. Wong
2022-12-30 22:18   ` [PATCH 23/38] xfs: add realtime rmap btree when adding rt volume Darrick J. Wong
2022-12-30 22:18   ` [PATCH 26/38] xfs: allow queued realtime intents to drain before scrubbing Darrick J. Wong
2022-12-30 22:18   ` [PATCH 22/38] xfs: check that the rtrmapbt maxlevels doesn't increase when growing fs Darrick J. Wong
2022-12-30 22:18   ` [PATCH 21/38] xfs: fix getfsmap reporting past the last rt extent Darrick J. Wong
2022-12-30 22:18   ` [PATCH 27/38] xfs: scrub the realtime rmapbt Darrick J. Wong
2022-12-30 22:18   ` [PATCH 25/38] xfs: fix scrub tracepoints when inode-rooted btrees are involved Darrick J. Wong
2022-12-30 22:18   ` [PATCH 29/38] xfs: cross-reference the realtime rmapbt Darrick J. Wong
2022-12-30 22:18   ` [PATCH 31/38] xfs: walk the rt reverse mapping tree when rebuilding rmap Darrick J. Wong
2022-12-30 22:18   ` [PATCH 33/38] xfs: repair inodes that have realtime extents Darrick J. Wong
2022-12-30 22:18   ` [PATCH 34/38] xfs: online repair of realtime bitmaps for a realtime group Darrick J. Wong
2022-12-30 22:18   ` [PATCH 30/38] xfs: scan rt rmap when we're doing an intense rmap check of bmbt mappings Darrick J. Wong
2022-12-30 22:18   ` [PATCH 28/38] xfs: cross-reference realtime bitmap to realtime rmapbt scrubber Darrick J. Wong
2022-12-30 22:18   ` [PATCH 32/38] xfs: online repair of realtime file bmaps Darrick J. Wong
2022-12-30 22:18   ` [PATCH 35/38] xfs: online repair of the realtime rmap btree Darrick J. Wong
2022-12-30 22:18   ` [PATCH 36/38] xfs: create a shadow rmap btree during realtime rmap repair Darrick J. Wong
2022-12-30 22:18   ` [PATCH 38/38] xfs: enable realtime rmap btree Darrick J. Wong
2022-12-30 22:18   ` [PATCH 37/38] xfs: hook live realtime rmap operations during a repair operation Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 0/5] xfs: refcount log intent cleanups Darrick J. Wong
2022-12-30 22:18   ` [PATCH 3/5] xfs: prepare refcount btree tracepoints for widening Darrick J. Wong
2022-12-30 22:18   ` [PATCH 1/5] xfs: give refcount btree cursor error tracepoints their own class Darrick J. Wong
2022-12-30 22:18   ` [PATCH 2/5] xfs: create specialized classes for refcount tracepoints Darrick J. Wong
2022-12-30 22:18   ` [PATCH 4/5] xfs: clean up refcount log intent item tracepoint callsites Darrick J. Wong
2022-12-30 22:18   ` [PATCH 5/5] xfs: remove xfs_trans_set_refcount_flags Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 00/42] xfs: reflink on the realtime device Darrick J. Wong
2022-12-30 22:18   ` [PATCH 03/42] xfs: namespace the maximum length/refcount symbols Darrick J. Wong
2022-12-30 22:18   ` [PATCH 02/42] xfs: introduce realtime refcount btree definitions Darrick J. Wong
2022-12-30 22:18   ` [PATCH 01/42] xfs: prepare refcount btree cursor tracepoints for realtime Darrick J. Wong
2022-12-30 22:18   ` [PATCH 05/42] xfs: realtime refcount btree transaction reservations Darrick J. Wong
2022-12-30 22:18   ` [PATCH 06/42] xfs: add realtime refcount btree operations Darrick J. Wong
2022-12-30 22:18   ` [PATCH 04/42] xfs: define the on-disk realtime refcount btree format Darrick J. Wong
2022-12-30 22:18   ` [PATCH 10/42] xfs: add realtime refcount btree block detection to log recovery Darrick J. Wong
2022-12-30 22:18   ` [PATCH 11/42] xfs: add realtime refcount btree inode to metadata directory Darrick J. Wong
2022-12-30 22:18   ` [PATCH 09/42] xfs: support recovering refcount intent items targetting realtime extents Darrick J. Wong
2022-12-30 22:18   ` [PATCH 12/42] xfs: add metadata reservations for realtime refcount btree Darrick J. Wong
2022-12-30 22:18   ` [PATCH 07/42] xfs: prepare refcount functions to deal with rtrefcountbt Darrick J. Wong
2022-12-30 22:18   ` [PATCH 08/42] xfs: add a realtime flag to the refcount update log redo items Darrick J. Wong
2022-12-30 22:18   ` [PATCH 13/42] xfs: wire up a new inode fork type for the realtime refcount Darrick J. Wong
2022-12-30 22:18   ` [PATCH 20/42] xfs: enable sharing of realtime file blocks Darrick J. Wong
2022-12-30 22:18   ` [PATCH 19/42] xfs: enable CoW for realtime data Darrick J. Wong
2022-12-30 22:18   ` [PATCH 15/42] xfs: create routine to allocate and initialize a realtime refcount btree inode Darrick J. Wong
2022-12-30 22:18   ` [PATCH 16/42] xfs: update rmap to allow cow staging extents in the rt rmap Darrick J. Wong
2022-12-30 22:18   ` [PATCH 17/42] xfs: compute rtrmap btree max levels when reflink enabled Darrick J. Wong
2022-12-30 22:18   ` [PATCH 18/42] xfs: refactor reflink quota updates Darrick J. Wong
2022-12-30 22:18   ` [PATCH 14/42] xfs: wire up realtime refcount btree cursors Darrick J. Wong
2022-12-30 22:18   ` [PATCH 21/42] xfs: allow inodes to have the realtime and reflink flags Darrick J. Wong
2022-12-30 22:18   ` [PATCH 27/42] xfs: add realtime refcount btree when adding rt volume Darrick J. Wong
2022-12-30 22:18   ` [PATCH 23/42] xfs: fix xfs_get_extsz_hint behavior with realtime alwayscow files Darrick J. Wong
2022-12-30 22:18   ` [PATCH 24/42] xfs: apply rt extent alignment constraints to CoW extsize hint Darrick J. Wong
2022-12-30 22:18   ` [PATCH 26/42] xfs: check that the rtrefcount maxlevels doesn't increase when growing fs Darrick J. Wong
2022-12-30 22:18   ` [PATCH 28/42] xfs: report realtime refcount btree corruption errors to the health system Darrick J. Wong
2022-12-30 22:18   ` [PATCH 25/42] xfs: enable extent size hints for CoW operations Darrick J. Wong
2022-12-30 22:18   ` [PATCH 22/42] xfs: refcover CoW leftovers in the realtime volume Darrick J. Wong
2022-12-30 22:18   ` [PATCH 31/42] xfs: allow overlapping rtrmapbt records for shared data extents Darrick J. Wong
2022-12-30 22:18   ` [PATCH 34/42] xfs: detect and repair misaligned rtinherit directory cowextsize hints Darrick J. Wong
2022-12-30 22:18   ` [PATCH 35/42] xfs: don't flag quota rt block usage on rtreflink filesystems Darrick J. Wong
2022-12-30 22:18   ` [PATCH 33/42] xfs: allow dquot rt block count to exceed rt blocks on reflink fs Darrick J. Wong
2022-12-30 22:18   ` [PATCH 29/42] xfs: scrub the realtime refcount btree Darrick J. Wong
2022-12-30 22:18   ` [PATCH 30/42] xfs: cross-reference checks with the rt " Darrick J. Wong
2022-12-30 22:18   ` [PATCH 32/42] xfs: check reference counts of gaps between rt refcount records Darrick J. Wong
2022-12-30 22:18   ` [PATCH 39/42] xfs: online repair of the realtime refcount btree Darrick J. Wong
2022-12-30 22:18   ` [PATCH 42/42] xfs: enable realtime reflink Darrick J. Wong
2022-12-30 22:18   ` [PATCH 36/42] xfs: check new rtbitmap records against rt refcount btree Darrick J. Wong
2022-12-30 22:18   ` [PATCH 40/42] xfs: repair inodes that have a refcount btree in the data fork Darrick J. Wong
2022-12-30 22:18   ` [PATCH 37/42] xfs: walk the rt reference count tree when rebuilding rmap Darrick J. Wong
2022-12-30 22:18   ` [PATCH 41/42] xfs: fix cow forks for realtime files Darrick J. Wong
2022-12-30 22:18   ` [PATCH 38/42] xfs: capture realtime CoW staging extents when rebuilding rt rmapbt Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 0/9] xfs: reflink with large realtime extents Darrick J. Wong
2022-12-30 22:18   ` [PATCH 4/9] xfs: forcibly convert unwritten blocks within an rt extent before sharing Darrick J. Wong
2022-12-30 22:18   ` [PATCH 2/9] iomap: set up for COWing around pages Darrick J. Wong
2022-12-30 22:18   ` [PATCH 1/9] vfs: explicitly pass the block size to the remap prep function Darrick J. Wong
2022-12-30 22:18   ` [PATCH 3/9] xfs: enable CoW when rt extent size is larger than 1 block Darrick J. Wong
2022-12-30 22:18   ` [PATCH 5/9] xfs: extend writeback requests to handle rt cow correctly Darrick J. Wong
2022-12-30 22:18   ` [PATCH 6/9] xfs: enable extent size hints for CoW when rtextsize > 1 Darrick J. Wong
2022-12-30 22:18   ` [PATCH 8/9] xfs: fix integer overflow when validating extent size hints Darrick J. Wong
2022-12-30 22:18   ` [PATCH 7/9] xfs: allow reflink on the rt volume when extent size is larger than 1 rt block Darrick J. Wong
2022-12-30 22:18   ` [PATCH 9/9] xfs: support realtime reflink with an extent size that isn't a power of 2 Darrick J. Wong
2022-12-30 22:18 ` [PATCHSET v1.0 0/3] xfs: enable quota for realtime voluems Darrick J. Wong
2022-12-30 22:18   ` [PATCH 3/3] xfs: enable realtime quota again Darrick J. Wong
2022-12-30 22:18   ` [PATCH 1/3] xfs: fix chown with rt quota Darrick J. Wong
2022-12-30 22:18   ` [PATCH 2/3] xfs: fix rt growfs quota accounting Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET 0/4] xfs_repair: add other v5 features to filesystems Darrick J. Wong
2022-12-30 22:19   ` [PATCH 1/4] xfs_repair: check free space requirements before allowing upgrades Darrick J. Wong
2022-12-30 22:19   ` [PATCH 4/4] xfs_repair: allow sysadmins to add reverse mapping indexes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 2/4] xfs_repair: allow sysadmins to add free inode btree indexes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 3/4] xfs_repair: allow sysadmins to add reflink Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 00/26] libxfs: hoist inode operations to libxfs Darrick J. Wong
2022-12-30 22:19   ` [PATCH 03/26] xfs: hoist project id get/set functions " Darrick J. Wong
2022-12-30 22:19   ` [PATCH 01/26] xfs: hoist extent size helpers " Darrick J. Wong
2022-12-30 22:19   ` [PATCH 02/26] xfs: hoist inode flag conversion functions " Darrick J. Wong
2022-12-30 22:19   ` [PATCH 06/26] libxfs: pack icreate initialization parameters into a separate structure Darrick J. Wong
2022-12-30 22:19   ` [PATCH 05/26] libxfs: pass IGET flags through to xfs_iread Darrick J. Wong
2022-12-30 22:19   ` [PATCH 04/26] libxfs: put all the inode functions in a single file Darrick J. Wong
2022-12-30 22:19   ` [PATCH 10/26] libxfs: when creating a file in a directory, set the project id based on the parent Darrick J. Wong
2022-12-30 22:19   ` [PATCH 09/26] libxfs: set access time when creating files Darrick J. Wong
2022-12-30 22:19   ` [PATCH 07/26] libxfs: implement access timestamp updates in ichgtime Darrick J. Wong
2022-12-30 22:19   ` [PATCH 08/26] libxfs: rearrange libxfs_trans_ichgtime call when creating inodes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 11/26] libxfs: pass flags2 from parent to child when creating files Darrick J. Wong
2022-12-30 22:19   ` [PATCH 12/26] libxfs: split new inode creation into two pieces Darrick J. Wong
2022-12-30 22:19   ` [PATCH 14/26] libxfs: remove libxfs_dir_ialloc Darrick J. Wong
2022-12-30 22:19   ` [PATCH 13/26] libxfs: backport inode init code from the kernel Darrick J. Wong
2022-12-30 22:19   ` [PATCH 17/26] xfs: hoist xfs_{bump,drop}link to libxfs Darrick J. Wong
2022-12-30 22:19   ` [PATCH 15/26] xfs: hoist new inode initialization functions " Darrick J. Wong
2022-12-30 22:19   ` [PATCH 22/26] xfs: create libxfs helper to exchange two directory entries Darrick J. Wong
2022-12-30 22:19   ` [PATCH 21/26] xfs: create libxfs helper to remove an existing inode/name from a directory Darrick J. Wong
2022-12-30 22:19   ` [PATCH 20/26] xfs: hoist inode free function to libxfs Darrick J. Wong
2022-12-30 22:19   ` [PATCH 19/26] xfs: create libxfs helper to link an existing inode into a directory Darrick J. Wong
2022-12-30 22:19   ` [PATCH 18/26] xfs: create libxfs helper to link a new " Darrick J. Wong
2022-12-30 22:19   ` [PATCH 16/26] xfs: hoist xfs_iunlink to libxfs Darrick J. Wong
2022-12-30 22:19   ` [PATCH 23/26] xfs: create libxfs helper to rename two directory entries Darrick J. Wong
2022-12-30 22:19   ` [PATCH 25/26] xfs_repair: use library functions to reset root/rbm/rsum inodes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 26/26] xfs_repair: use library functions for orphanage creation Darrick J. Wong
2022-12-30 22:19   ` [PATCH 24/26] xfs: don't use the incore struct xfs_sb for offsets into struct xfs_dsb Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 00/46] libxfs: metadata inode directories Darrick J. Wong
2022-12-30 22:19   ` [PATCH 04/46] libxfs: convert all users to libxfs_imeta_create Darrick J. Wong
2022-12-30 22:19   ` [PATCH 02/46] xfs: create transaction reservations for metadata inode operations Darrick J. Wong
2022-12-30 22:19   ` [PATCH 03/46] mkfs: clean up the rtinit() function Darrick J. Wong
2022-12-30 22:19   ` [PATCH 01/46] xfs: create imeta abstractions to get and set metadata inodes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 05/46] mkfs: break up the rest of the rtinit() function Darrick J. Wong
2022-12-30 22:19   ` [PATCH 12/46] xfs: read and write metadata inode directory Darrick J. Wong
2022-12-30 22:19   ` [PATCH 08/46] xfs: update imeta transaction reservations for metadir Darrick J. Wong
2022-12-30 22:19   ` [PATCH 06/46] libxfs: iget for metadata inodes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 11/46] xfs: enforce metadata inode flag Darrick J. Wong
2022-12-30 22:19   ` [PATCH 09/46] xfs: load metadata directory root at mount time Darrick J. Wong
2022-12-30 22:19   ` [PATCH 07/46] xfs: define the on-disk format for the metadir feature Darrick J. Wong
2022-12-30 22:19   ` [PATCH 10/46] xfs: convert metadata inode lookup keys to use paths Darrick J. Wong
2022-12-30 22:19   ` [PATCH 14/46] xfs: disable the agi rotor for metadata inodes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 19/46] libfrog: report metadata directories in the geometry report Darrick J. Wong
2022-12-30 22:19   ` [PATCH 15/46] xfs: advertise metadata directory feature Darrick J. Wong
2022-12-30 22:19   ` [PATCH 20/46] xfs_db: basic xfs_check support for metadir Darrick J. Wong
2022-12-30 22:19   ` [PATCH 18/46] xfs: record health problems with the metadata directory Darrick J. Wong
2022-12-30 22:19   ` [PATCH 17/46] xfs: enable creation of dynamically allocated metadir path structures Darrick J. Wong
2022-12-30 22:19   ` [PATCH 13/46] xfs: ensure metadata directory paths exist before creating files Darrick J. Wong
2022-12-30 22:19   ` [PATCH 16/46] xfs: allow bulkstat to return metadata directories Darrick J. Wong
2022-12-30 22:19   ` [PATCH 24/46] xfs_db: mask superblock fields when metadir feature is enabled Darrick J. Wong
2022-12-30 22:19   ` [PATCH 23/46] xfs_db: support metadata directories in the path command Darrick J. Wong
2022-12-30 22:19   ` [PATCH 26/46] xfs_scrub: scan metadata directories during phase 3 Darrick J. Wong
2022-12-30 22:19   ` [PATCH 25/46] xfs_io: support the bulkstat metadata directory flag Darrick J. Wong
2022-12-30 22:19   ` [PATCH 21/46] xfs_db: report metadir support for version command Darrick J. Wong
2022-12-30 22:19   ` [PATCH 22/46] xfs_db: don't obfuscate metadata directories and attributes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 27/46] xfs_repair: don't zero the incore secondary super when zeroing Darrick J. Wong
2022-12-30 22:19   ` [PATCH 28/46] xfs_repair: refactor metadata inode tagging Darrick J. Wong
2022-12-30 22:19   ` [PATCH 33/46] xfs_repair: check metadata inode flag Darrick J. Wong
2022-12-30 22:19   ` [PATCH 29/46] xfs_repair: refactor fixing dotdot Darrick J. Wong
2022-12-30 22:19   ` [PATCH 34/46] xfs_repair: rebuild the metadata directory Darrick J. Wong
2022-12-30 22:19   ` [PATCH 31/46] xfs_repair: refactor root directory initialization Darrick J. Wong
2022-12-30 22:19   ` [PATCH 35/46] xfs_repair: don't let metadata and regular files mix Darrick J. Wong
2022-12-30 22:19   ` [PATCH 30/46] xfs_repair: refactor marking of metadata inodes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 32/46] xfs_repair: refactor grabbing realtime " Darrick J. Wong
2022-12-30 22:19   ` [PATCH 39/46] xfs_repair: adjust keep_fsinos to handle metadata directories Darrick J. Wong
2022-12-30 22:19   ` [PATCH 42/46] xfs_repair: drop all the metadata directory files during pass 4 Darrick J. Wong
2022-12-30 22:19   ` [PATCH 38/46] xfs_repair: mark space used by metadata files Darrick J. Wong
2022-12-30 22:19   ` [PATCH 43/46] xfs_repair: truncate and unmark orphaned metadata inodes Darrick J. Wong
2022-12-30 22:19   ` [PATCH 36/46] xfs_repair: update incore metadata state whenever we create new files Darrick J. Wong
2022-12-30 22:19   ` [PATCH 40/46] xfs_repair: metadata dirs are never plausible root dirs Darrick J. Wong
2022-12-30 22:19   ` [PATCH 37/46] xfs_repair: pass private data pointer to scan_lbtree Darrick J. Wong
2022-12-30 22:19   ` [PATCH 41/46] xfs_repair: reattach quota inodes to metadata directory Darrick J. Wong
2022-12-30 22:19   ` [PATCH 45/46] mkfs.xfs: enable metadata directories Darrick J. Wong
2022-12-30 22:19   ` [PATCH 46/46] mkfs: add a utility to generate protofiles Darrick J. Wong
2022-12-30 22:19   ` [PATCH 44/46] xfs_repair: allow sysadmins to add metadata directories Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 00/10] libxfs: refactor rt extent unit conversions Darrick J. Wong
2022-12-30 22:19   ` [PATCH 02/10] xfs: create a helper to compute leftovers of realtime extents Darrick J. Wong
2022-12-30 22:19   ` [PATCH 01/10] xfs: create a helper to convert rtextents to rtblocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 05/10] xfs: create helpers to convert rt block numbers to rt extent numbers Darrick J. Wong
2022-12-30 22:19   ` [PATCH 03/10] xfs: create a helper to compute leftovers of realtime extents Darrick J. Wong
2022-12-30 22:19   ` [PATCH 04/10] libfrog: move 64-bit division wrappers to libfrog Darrick J. Wong
2022-12-30 22:19   ` [PATCH 06/10] xfs: convert do_div calls to xfs_rtb_to_rtx helper calls Darrick J. Wong
2022-12-30 22:19   ` [PATCH 09/10] xfs_repair: convert utility to use new rt extent helpers and types Darrick J. Wong
2022-12-30 22:19   ` [PATCH 08/10] xfs: use shifting and masking when converting rt extents, if possible Darrick J. Wong
2022-12-30 22:19   ` [PATCH 10/10] mkfs: convert utility to use new rt extent helpers and types Darrick J. Wong
2022-12-30 22:19   ` [PATCH 07/10] xfs: create rt extent rounding helpers for realtime extent blocks Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 0/9] libxfs: refactor rtbitmap/summary macros Darrick J. Wong
2022-12-30 22:19   ` [PATCH 3/9] xfs: convert open-coded xfs_rtword_t pointer accesses to helper Darrick J. Wong
2022-12-30 22:19   ` [PATCH 1/9] xfs: convert the rtbitmap block and bit macros to static inline functions Darrick J. Wong
2022-12-30 22:19   ` [PATCH 4/9] xfs: convert rt summary macros to helpers Darrick J. Wong
2022-12-30 22:19   ` [PATCH 2/9] xfs: remove XFS_BLOCKWSIZE and XFS_BLOCKWMASK macros Darrick J. Wong
2022-12-30 22:19   ` [PATCH 5/9] xfs: create helpers for rtbitmap block/wordcount computations Darrick J. Wong
2022-12-30 22:19   ` [PATCH 7/9] xfs: create helpers for rtsummary " Darrick J. Wong
2022-12-30 22:19   ` [PATCH 8/9] xfs: use accessor functions for summary info words Darrick J. Wong
2022-12-30 22:19   ` [PATCH 9/9] misc: use m_blockwsize instead of sb_blocksize for rt blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 6/9] xfs: use accessor functions for bitmap words Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 0/8] xfs_db: debug realtime geometry Darrick J. Wong
2022-12-30 22:19   ` [PATCH 2/8] xfs_db: report the device associated with each io cursor Darrick J. Wong
2022-12-30 22:19   ` [PATCH 5/8] xfs_db: access arbitrary realtime blocks and extents Darrick J. Wong
2022-12-30 22:19   ` [PATCH 6/8] xfs_db: enable conversion of rt space units Darrick J. Wong
2022-12-30 22:19   ` [PATCH 3/8] xfs_db: make the daddr command target the realtime device Darrick J. Wong
2022-12-30 22:19   ` [PATCH 4/8] xfs_db: access realtime file blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 1/8] xfs_db: support passing the realtime device to the debugger Darrick J. Wong
2022-12-30 22:19   ` [PATCH 8/8] xfs_db: convert rtsummary geometry Darrick J. Wong
2022-12-30 22:19   ` [PATCH 7/8] xfs_db: convert rtbitmap geometry Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 0/5] xfs_metadump: support external devices Darrick J. Wong
2022-12-30 22:19   ` [PATCH 1/5] xfs_db: allow selecting logdev blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 3/5] xfs_db: metadump external log devices Darrick J. Wong
2022-12-30 22:19   ` [PATCH 5/5] xfs_mdrestore: fix missed progress reporting Darrick J. Wong
2022-12-30 22:19   ` [PATCH 4/5] xfs_mdrestore: restore log contents to external log devices Darrick J. Wong
2022-12-30 22:19   ` [PATCH 2/5] xfs_db: allow setting current address to log blocks Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 00/45] libxfs: shard the realtime section Darrick J. Wong
2022-12-30 22:19   ` [PATCH 02/45] xfs: define the format of rt groups Darrick J. Wong
2022-12-30 22:19   ` [PATCH 01/45] xfs: create incore realtime group structures Darrick J. Wong
2022-12-30 22:19   ` [PATCH 05/45] xfs: grow the realtime section when realtime groups are enabled Darrick J. Wong
2022-12-30 22:19   ` [PATCH 08/45] xfs: add frextents to the lazysbcounters when rtgroups enabled Darrick J. Wong
2022-12-30 22:19   ` [PATCH 03/45] xfs: update primary realtime super every time we update the primary fs super Darrick J. Wong
2022-12-30 22:19   ` [PATCH 07/45] xfs: check that rtblock extents do not overlap with the rt group metadata Darrick J. Wong
2022-12-30 22:19   ` [PATCH 06/45] xfs: export realtime group geometry via XFS_FSOP_GEOM Darrick J. Wong
2022-12-30 22:19   ` [PATCH 04/45] xfs: write secondary realtime superblocks to disk Darrick J. Wong
2022-12-30 22:19   ` [PATCH 09/45] xfs: record rt group superblock errors in the health system Darrick J. Wong
2022-12-30 22:19   ` [PATCH 10/45] xfs: define locking primitives for realtime groups Darrick J. Wong
2022-12-30 22:19   ` [PATCH 15/45] xfs: encode the rtsummary in big endian format Darrick J. Wong
2022-12-30 22:19   ` [PATCH 13/45] xfs: encode the rtbitmap in little " Darrick J. Wong
2022-12-30 22:19   ` [PATCH 11/45] xfs: export the geometry of realtime groups to userspace Darrick J. Wong
2022-12-30 22:19   ` [PATCH 14/45] xfs: add block headers to realtime summary blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 16/45] xfs: store rtgroup information with a bmap intent Darrick J. Wong
2022-12-30 22:19   ` [PATCH 12/45] xfs: add block headers to realtime bitmap blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 17/45] xfs: scrub the realtime group superblock Darrick J. Wong
2022-12-30 22:19   ` [PATCH 19/45] xfs: scrub the rtbitmap by group Darrick J. Wong
2022-12-30 22:19   ` [PATCH 22/45] xfs_repair: improve rtbitmap discrepancy reporting Darrick J. Wong
2022-12-30 22:19   ` [PATCH 25/45] xfs_db: listify the definition of enum typnm Darrick J. Wong
2022-12-30 22:19   ` [PATCH 23/45] xfs_repair: repair rtbitmap block headers Darrick J. Wong
2022-12-30 22:19   ` [PATCH 21/45] xfs_repair: support realtime groups Darrick J. Wong
2022-12-30 22:19   ` [PATCH 24/45] xfs_repair: repair rtsummary block headers Darrick J. Wong
2022-12-30 22:19   ` [PATCH 18/45] xfs: repair secondary realtime group superblocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 20/45] libfrog: report rt groups in output Darrick J. Wong
2022-12-30 22:19   ` [PATCH 26/45] xfs_db: support dumping realtime superblocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 31/45] xfs_db: report rtgroups via version command Darrick J. Wong
2022-12-30 22:19   ` [PATCH 27/45] xfs_db: support changing the label and uuid of rt superblocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 28/45] xfs_db: listify the definition of dbm_t Darrick J. Wong
2022-12-30 22:19   ` [PATCH 32/45] xfs_db: metadump realtime devices Darrick J. Wong
2022-12-30 22:19   ` [PATCH 30/45] xfs_db: enable conversion of rt space units Darrick J. Wong
2022-12-30 22:19   ` [PATCH 29/45] xfs_db: implement check for rt superblocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 35/45] xfs_mdrestore: restore rt group superblocks to realtime device Darrick J. Wong
2022-12-30 22:19   ` [PATCH 38/45] xfs_io: display rt group in verbose bmap output Darrick J. Wong
2022-12-30 22:19   ` [PATCH 33/45] xfs_db: dump rt bitmap blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 40/45] xfs_spaceman: report on realtime group health Darrick J. Wong
2022-12-30 22:19   ` [PATCH 36/45] xfs_io: add a command to display allocation group information Darrick J. Wong
2022-12-30 22:19   ` [PATCH 34/45] xfs_db: dump rt summary blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 39/45] xfs_io: display rt group in verbose fsmap output Darrick J. Wong
2022-12-30 22:19   ` [PATCH 37/45] xfs_io: add a command to display realtime group information Darrick J. Wong
2022-12-30 22:19   ` [PATCH 43/45] mkfs: add headers to realtime bitmap blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 44/45] mkfs: add headers to realtime summary blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 45/45] mkfs: format realtime groups Darrick J. Wong
2022-12-30 22:19   ` [PATCH 41/45] xfs_scrub: scrub realtime allocation group metadata Darrick J. Wong
2022-12-30 22:19   ` [PATCH 42/45] xfs_scrub: fstrim each rtgroup in parallel Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 0/3] libxfs: widen EFI format to support rt Darrick J. Wong
2022-12-30 22:19   ` [PATCH 2/3] xfs_logprint: report realtime EFIs Darrick J. Wong
2022-12-30 22:19   ` [PATCH 1/3] xfs: support logging EFIs for realtime extents Darrick J. Wong
2022-12-30 22:19   ` [PATCH 3/3] xfs: support error injection when freeing rt extents Darrick J. Wong
2022-12-30 22:19 ` [PATCHSET v1.0 00/41] libxfs: realtime reverse-mapping support Darrick J. Wong
2022-12-30 22:19   ` [PATCH 04/41] xfs: realtime rmap btree transaction reservations Darrick J. Wong
2022-12-30 22:19   ` [PATCH 01/41] xfs: simplify the xfs_rmap_{alloc,free}_extent calling conventions Darrick J. Wong
2022-12-30 22:19   ` [PATCH 03/41] xfs: define the on-disk realtime rmap btree format Darrick J. Wong
2022-12-30 22:19   ` [PATCH 02/41] xfs: introduce realtime rmap btree definitions Darrick J. Wong
2022-12-30 22:19   ` [PATCH 06/41] xfs: prepare rmap functions to deal with rtrmapbt Darrick J. Wong
2022-12-30 22:19   ` [PATCH 07/41] xfs: add a realtime flag to the rmap update log redo items Darrick J. Wong
2022-12-30 22:19   ` [PATCH 05/41] xfs: add realtime rmap btree operations Darrick J. Wong
2022-12-30 22:19   ` [PATCH 12/41] xfs: wire up rmap map and unmap to the realtime rmapbt Darrick J. Wong
2022-12-30 22:19   ` [PATCH 15/41] xfs: allow queued realtime intents to drain before scrubbing Darrick J. Wong
2022-12-30 22:19   ` [PATCH 11/41] xfs: use realtime EFI to free extents when realtime rmap is enabled Darrick J. Wong
2022-12-30 22:19   ` [PATCH 09/41] xfs: add metadata reservations for realtime rmap btrees Darrick J. Wong
2022-12-30 22:19   ` [PATCH 13/41] xfs: create routine to allocate and initialize a realtime rmap btree inode Darrick J. Wong
2022-12-30 22:19   ` [PATCH 08/41] xfs: add realtime reverse map inode to superblock Darrick J. Wong
2022-12-30 22:19   ` [PATCH 10/41] xfs: wire up a new inode fork type for the realtime rmap Darrick J. Wong
2022-12-30 22:19   ` [PATCH 14/41] xfs: report realtime rmap btree corruption errors to the health system Darrick J. Wong
2022-12-30 22:19   ` [PATCH 18/41] xfs: create a shadow rmap btree during realtime rmap repair Darrick J. Wong
2022-12-30 22:19   ` [PATCH 21/41] xfs_db: support the realtime rmapbt Darrick J. Wong
2022-12-30 22:19   ` [PATCH 19/41] xfs: hook live realtime rmap operations during a repair operation Darrick J. Wong
2022-12-30 22:19   ` [PATCH 20/41] xfs_db: display the realtime rmap btree contents Darrick J. Wong
2022-12-30 22:19   ` [PATCH 16/41] xfs: scrub the realtime rmapbt Darrick J. Wong
2022-12-30 22:19   ` [PATCH 17/41] xfs: online repair of the realtime rmap btree Darrick J. Wong
2022-12-30 22:19   ` [PATCH 22/41] xfs_db: support rudimentary checks of the rtrmap btree Darrick J. Wong
2022-12-30 22:19   ` [PATCH 27/41] libxfs: dirty buffers should be marked uptodate too Darrick J. Wong
2022-12-30 22:19   ` [PATCH 25/41] libfrog: enable scrubbng of the realtime rmap Darrick J. Wong
2022-12-30 22:19   ` [PATCH 24/41] xfs_db: make fsmap query the realtime reverse mapping tree Darrick J. Wong
2022-12-30 22:19   ` [PATCH 29/41] xfs_repair: use realtime rmap btree data to check block types Darrick J. Wong
2022-12-30 22:19   ` [PATCH 28/41] xfs_repair: flag suspect long-format btree blocks Darrick J. Wong
2022-12-30 22:19   ` [PATCH 26/41] xfs_spaceman: report health status of the realtime rmap btree Darrick J. Wong
2022-12-30 22:19   ` [PATCH 30/41] xfs_repair: create a new set of incore rmap information for rt groups Darrick J. Wong
2022-12-30 22:19   ` [PATCH 23/41] xfs_db: copy the realtime rmap btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 36/41] xfs_repair: rebuild " Darrick J. Wong
2022-12-30 22:20   ` [PATCH 32/41] xfs_repair: refactor realtime inode check Darrick J. Wong
2022-12-30 22:20   ` [PATCH 33/41] xfs_repair: find and mark the rtrmapbt inodes Darrick J. Wong
2022-12-30 22:20   ` [PATCH 34/41] xfs_repair: check existing realtime rmapbt entries against observed rmaps Darrick J. Wong
2022-12-30 22:20   ` [PATCH 38/41] xfs_repair: reserve per-AG space while rebuilding rt metadata Darrick J. Wong
2022-12-30 22:20   ` [PATCH 35/41] xfs_repair: always check realtime file mappings against incore info Darrick J. Wong
2022-12-30 22:20   ` [PATCH 31/41] xfs_repair: collect relatime reverse-mapping data for refcount/rmap tree rebuilding Darrick J. Wong
2022-12-30 22:20   ` [PATCH 37/41] xfs_repair: rebuild the bmap btree for realtime files Darrick J. Wong
2022-12-30 22:20   ` [PATCH 41/41] mkfs: create the realtime rmap inode Darrick J. Wong
2022-12-30 22:20   ` [PATCH 39/41] xfs_repair: allow sysadmins to add realtime reverse mapping indexes Darrick J. Wong
2022-12-30 22:20   ` [PATCH 40/41] xfs_scrub: retest metadata across scrub groups after a repair Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 0/4] libxfs: file write utility refactoring Darrick J. Wong
2022-12-30 22:20   ` [PATCH 4/4] mkfs: use file write helper to populate files Darrick J. Wong
2022-12-30 22:20   ` [PATCH 2/4] mkfs: use libxfs_alloc_file_space for rtinit Darrick J. Wong
2022-12-30 22:20   ` [PATCH 3/4] xfs_repair: use libxfs_alloc_file_space to reallocate rt metadata Darrick J. Wong
2022-12-30 22:20   ` [PATCH 1/4] libxfs: resync libxfs_alloc_file_space interface with the kernel Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 00/41] libxfs: reflink on the realtime device Darrick J. Wong
2022-12-30 22:20   ` [PATCH 02/41] xfs: namespace the maximum length/refcount symbols Darrick J. Wong
2022-12-30 22:20   ` [PATCH 01/41] xfs: introduce realtime refcount btree definitions Darrick J. Wong
2022-12-30 22:20   ` [PATCH 06/41] xfs: prepare refcount functions to deal with rtrefcountbt Darrick J. Wong
2022-12-30 22:20   ` [PATCH 07/41] xfs: add a realtime flag to the refcount update log redo items Darrick J. Wong
2022-12-30 22:20   ` [PATCH 05/41] xfs: add realtime refcount btree operations Darrick J. Wong
2022-12-30 22:20   ` [PATCH 03/41] xfs: define the on-disk realtime refcount btree format Darrick J. Wong
2022-12-30 22:20   ` [PATCH 09/41] xfs: add metadata reservations for realtime refcount btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 04/41] xfs: realtime refcount btree transaction reservations Darrick J. Wong
2022-12-30 22:20   ` [PATCH 08/41] xfs: add realtime refcount btree inode to metadata directory Darrick J. Wong
2022-12-30 22:20   ` [PATCH 15/41] xfs: allow inodes to have the realtime and reflink flags Darrick J. Wong
2022-12-30 22:20   ` [PATCH 12/41] xfs: create routine to allocate and initialize a realtime refcount btree inode Darrick J. Wong
2022-12-30 22:20   ` [PATCH 11/41] xfs: wire up realtime refcount btree cursors Darrick J. Wong
2022-12-30 22:20   ` [PATCH 14/41] xfs: compute rtrmap btree max levels when reflink enabled Darrick J. Wong
2022-12-30 22:20   ` [PATCH 17/41] xfs: fix xfs_get_extsz_hint behavior with realtime alwayscow files Darrick J. Wong
2022-12-30 22:20   ` [PATCH 16/41] xfs: refcover CoW leftovers in the realtime volume Darrick J. Wong
2022-12-30 22:20   ` [PATCH 13/41] xfs: update rmap to allow cow staging extents in the rt rmap Darrick J. Wong
2022-12-30 22:20   ` [PATCH 10/41] xfs: wire up a new inode fork type for the realtime refcount Darrick J. Wong
2022-12-30 22:20   ` [PATCH 24/41] xfs_db: display the realtime refcount btree contents Darrick J. Wong
2022-12-30 22:20   ` [PATCH 23/41] libfrog: enable scrubbing of the realtime refcount data Darrick J. Wong
2022-12-30 22:20   ` [PATCH 21/41] xfs: scrub the realtime refcount btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 18/41] xfs: apply rt extent alignment constraints to CoW extsize hint Darrick J. Wong
2022-12-30 22:20   ` [PATCH 20/41] xfs: report realtime refcount btree corruption errors to the health system Darrick J. Wong
2022-12-30 22:20   ` [PATCH 19/41] xfs: enable extent size hints for CoW operations Darrick J. Wong
2022-12-30 22:20   ` [PATCH 22/41] xfs: online repair of the realtime refcount btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 26/41] xfs_db: widen block type mask to 64 bits Darrick J. Wong
2022-12-30 22:20   ` [PATCH 29/41] xfs_spaceman: report health of the realtime refcount btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 32/41] xfs_repair: find and mark the rtrefcountbt inode Darrick J. Wong
2022-12-30 22:20   ` [PATCH 30/41] xfs_repair: allow CoW staging extents in the realtime rmap records Darrick J. Wong
2022-12-30 22:20   ` [PATCH 28/41] xfs_db: copy the realtime refcount btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 31/41] xfs_repair: use realtime refcount btree data to check block types Darrick J. Wong
2022-12-30 22:20   ` [PATCH 25/41] xfs_db: support the realtime refcountbt Darrick J. Wong
2022-12-30 22:20   ` [PATCH 27/41] xfs_db: support rudimentary checks of the rtrefcount btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 34/41] xfs_repair: check existing realtime refcountbt entries against observed refcounts Darrick J. Wong
2022-12-30 22:20   ` [PATCH 36/41] xfs_repair: rebuild the realtime refcount btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 35/41] xfs_repair: reject unwritten shared extents Darrick J. Wong
2022-12-30 22:20   ` [PATCH 33/41] xfs_repair: compute refcount data for the realtime groups Darrick J. Wong
2022-12-30 22:20   ` [PATCH 39/41] xfs_repair: allow sysadmins to add realtime reflink Darrick J. Wong
2022-12-30 22:20   ` [PATCH 38/41] xfs_repair: validate CoW extent size hint on rtinherit directories Darrick J. Wong
2022-12-30 22:20   ` [PATCH 37/41] xfs_repair: allow realtime files to have the reflink flag set Darrick J. Wong
2022-12-30 22:20   ` [PATCH 40/41] mkfs: validate CoW extent size hint when rtinherit is set Darrick J. Wong
2022-12-30 22:20   ` [PATCH 41/41] mkfs: enable reflink on the realtime device Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 0/3] libxfs: reflink with large realtime extents Darrick J. Wong
2022-12-30 22:20   ` [PATCH 3/3] mkfs: enable reflink with realtime extent sizes > 1 Darrick J. Wong
2022-12-30 22:20   ` [PATCH 1/3] xfs: enable extent size hints for CoW when rtextsize " Darrick J. Wong
2022-12-30 22:20   ` [PATCH 2/3] xfs: fix integer overflow when validating extent size hints Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 0/1] libxfs: enable quota for realtime voluems Darrick J. Wong
2022-12-30 22:20   ` [PATCH 1/1] xfs_quota: report warning limits for realtime space quotas Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET 0/1] fstests: test upgrading older features Darrick J. Wong
2022-12-30 22:20   ` [PATCH 1/1] xfs: test upgrading old features Darrick J. Wong
2023-03-06 15:56     ` Zorro Lang
2023-03-06 16:41       ` Darrick J. Wong
2023-03-06 16:54         ` Zorro Lang
2023-03-06 23:14           ` Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 0/9] fstests: test XFS metadata directories Darrick J. Wong
2022-12-30 22:20   ` [PATCH 3/9] xfs/{030,033,178}: forcibly disable metadata directory trees Darrick J. Wong
2022-12-30 22:20   ` [PATCH 1/9] xfs/122: fix metadirino Darrick J. Wong
2022-12-30 22:20   ` [PATCH 2/9] various: fix finding metadata inode numbers when metadir is enabled Darrick J. Wong
2023-03-06 16:41     ` Zorro Lang
2022-12-30 22:20   ` [PATCH 4/9] common/repair: patch up repair sb inode value complaints Darrick J. Wong
2022-12-30 22:20   ` [PATCH 6/9] xfs/{050,144,153,299,330}: update quota reports to leave out metadir files Darrick J. Wong
2022-12-30 22:20   ` [PATCH 9/9] xfs: create fuzz tests for metadata directories Darrick J. Wong
2022-12-30 22:20   ` [PATCH 7/9] xfs/769: add metadir upgrade to test matrix Darrick J. Wong
2022-12-30 22:20   ` [PATCH 5/9] xfs/206: update for metadata directory support Darrick J. Wong
2022-12-30 22:20   ` [PATCH 8/9] xfs/509: adjust inumbers accounting for metadata directories Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 0/4] fstests: support metadump to external devices Darrick J. Wong
2022-12-30 22:20   ` [PATCH 3/4] common/ext4: reformat external logs during mdrestore operations Darrick J. Wong
2022-12-30 22:20   ` [PATCH 2/4] common/xfs: wipe " Darrick J. Wong
2022-12-30 22:20   ` [PATCH 1/4] common/populate: refactor caching of metadumps to a helper Darrick J. Wong
2022-12-30 22:20   ` [PATCH 4/4] common/xfs: capture external logs during metadump/mdrestore Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 00/12] xfsprogs: shard the realtime section Darrick J. Wong
2022-12-30 22:20   ` [PATCH 03/12] xfs/206: update mkfs filtering for rt groups feature Darrick J. Wong
2022-12-30 22:20   ` [PATCH 01/12] xfs/122: update for rtgroups Darrick J. Wong
2022-12-30 22:20   ` [PATCH 02/12] punch-alternating: detect xfs realtime files with large allocation units Darrick J. Wong
2022-12-30 22:20   ` [PATCH 10/12] xfs/27[46],xfs/556: fix tests to deal with rtgroups output in bmap/fsmap commands Darrick J. Wong
2022-12-30 22:20   ` [PATCH 07/12] xfs/449: update test to know about xfs_db -R Darrick J. Wong
2022-12-30 22:20   ` [PATCH 11/12] common/xfs: capture realtime devices during metadump/mdrestore Darrick J. Wong
2022-12-30 22:20   ` [PATCH 05/12] common: filter rtgroups when we're disabling metadir Darrick J. Wong
2022-12-30 22:20   ` [PATCH 08/12] xfs/122: update for rtbitmap headers Darrick J. Wong
2022-12-30 22:20   ` [PATCH 06/12] xfs/185: update for rtgroups Darrick J. Wong
2022-12-30 22:20   ` [PATCH 04/12] common: pass the realtime device to xfs_db when possible Darrick J. Wong
2022-12-30 22:20   ` [PATCH 09/12] xfs/122: udpate test to pick up rtword/suminfo ondisk unions Darrick J. Wong
2022-12-30 22:20   ` [PATCH 12/12] common/fuzzy: adapt the scrub stress tests to support rtgroups Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 00/13] fstests: fixes for realtime rmap Darrick J. Wong
2022-12-30 22:20   ` [PATCH 03/13] xfs: race fsstress with realtime rmap btree scrub and repair Darrick J. Wong
2022-12-30 22:20   ` [PATCH 04/13] xfs/769: add rtrmapbt upgrade to test matrix Darrick J. Wong
2022-12-30 22:20   ` [PATCH 05/13] xfs/122: update for rtgroups-based realtime rmap btrees Darrick J. Wong
2022-12-30 22:20   ` [PATCH 07/13] xfs/341: update test for rtgroup-based rmap Darrick J. Wong
2022-12-30 22:20   ` [PATCH 06/13] xfs: fix various problems with fsmap detecting the data device Darrick J. Wong
2022-12-30 22:20   ` [PATCH 01/13] xfs: fix tests that try to access the realtime rmap inode Darrick J. Wong
2022-12-30 22:20   ` [PATCH 02/13] fuzz: for fuzzing the rtrmapbt, find the path to the rt rmap btree file Darrick J. Wong
2022-12-30 22:20   ` [PATCH 09/13] xfs: skip tests if formatting small filesystem fails Darrick J. Wong
2022-12-30 22:20   ` [PATCH 10/13] xfs/443: use file allocation unit, not dbsize Darrick J. Wong
2022-12-30 22:20   ` [PATCH 12/13] populate: check that we created a realtime rmap btree of the given height Darrick J. Wong
2022-12-30 22:20   ` [PATCH 13/13] fuzzy: create missing fuzz tests for rt rmap btrees Darrick J. Wong
2022-12-30 22:20   ` [PATCH 11/13] populate: adjust rtrmap calculations for rtgroups Darrick J. Wong
2022-12-30 22:20   ` [PATCH 08/13] xfs/3{43,32}: adapt tests for rt extent size greater than 1 Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 00/10] fstests: reflink on the realtime device Darrick J. Wong
2022-12-30 22:20   ` [PATCH 01/10] xfs/122: update fields for realtime reflink Darrick J. Wong
2022-12-30 22:20   ` [PATCH 02/10] common/populate: create realtime refcount btree Darrick J. Wong
2022-12-30 22:20   ` [PATCH 03/10] xfs: create fuzz tests for the " Darrick J. Wong
2022-12-30 22:20   ` [PATCH 06/10] xfs: race fsstress with realtime refcount btree scrub and repair Darrick J. Wong
2022-12-30 22:20   ` [PATCH 09/10] generic/331,xfs/240: support files that skip delayed allocation Darrick J. Wong
2022-12-30 22:20   ` [PATCH 05/10] xfs/243: don't run when realtime storage is the default Darrick J. Wong
2022-12-30 22:20   ` [PATCH 04/10] xfs/27[24]: adapt for checking files on the realtime volume Darrick J. Wong
2022-12-30 22:20   ` [PATCH 08/10] xfs/769: add rtreflink upgrade to test matrix Darrick J. Wong
2022-12-30 22:20   ` [PATCH 10/10] common/xfs: fix _xfs_get_file_block_size when rtinherit is set and no rt section Darrick J. Wong
2022-12-30 22:20   ` [PATCH 07/10] xfs: remove xfs/131 now that we allow reflink on realtime volumes Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 0/4] fstests: reflink with large realtime extents Darrick J. Wong
2022-12-30 22:20   ` [PATCH 1/4] xfs: make sure that CoW will write around when rextsize > 1 Darrick J. Wong
2022-12-30 22:20   ` [PATCH 2/4] xfs: skip cowextsize hint fragmentation tests on realtime volumes Darrick J. Wong
2022-12-30 22:20   ` [PATCH 4/4] generic/303: avoid test failures on weird rt extent sizes Darrick J. Wong
2022-12-30 22:20   ` [PATCH 3/4] misc: add more congruent oplen testing Darrick J. Wong
2022-12-30 22:20 ` [PATCHSET v1.0 0/1] fstests: functional tests for rt quota Darrick J. Wong
2022-12-30 22:20   ` [PATCH 1/1] xfs: regression testing of quota on the realtime device 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=167243867284.712847.15864310421589015183.stgit@magnolia \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.