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 11/11] xfs: convert rt extent numbers to xfs_rtxnum_t
Date: Fri, 30 Dec 2022 14:17:37 -0800	[thread overview]
Message-ID: <167243865772.709511.15835685162958364869.stgit@magnolia> (raw)
In-Reply-To: <167243865605.709511.15650588946095003543.stgit@magnolia>

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

Further disambiguate the xfs_rtblock_t uses by creating a new type,
xfs_rtxnum_t, to store the position of an extent within the realtime
section, in units of rtextents.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 fs/xfs/libxfs/xfs_rtbitmap.c |   86 +++++++++++++--------------
 fs/xfs/libxfs/xfs_rtbitmap.h |   26 ++++----
 fs/xfs/libxfs/xfs_types.h    |    2 +
 fs/xfs/scrub/rtbitmap.c      |    6 +-
 fs/xfs/scrub/rtsummary.c     |    2 -
 fs/xfs/scrub/trace.h         |    4 +
 fs/xfs/xfs_bmap_util.c       |   12 ++--
 fs/xfs/xfs_rtalloc.c         |  134 +++++++++++++++++++++---------------------
 fs/xfs/xfs_rtalloc.h         |    6 +-
 9 files changed, 138 insertions(+), 140 deletions(-)


diff --git a/fs/xfs/libxfs/xfs_rtbitmap.c b/fs/xfs/libxfs/xfs_rtbitmap.c
index 50a9d23c00c6..ce1443681131 100644
--- a/fs/xfs/libxfs/xfs_rtbitmap.c
+++ b/fs/xfs/libxfs/xfs_rtbitmap.c
@@ -102,9 +102,9 @@ int
 xfs_rtfind_back(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	start,		/* starting block to look at */
-	xfs_rtblock_t	limit,		/* last block to look at */
-	xfs_rtblock_t	*rtblock)	/* out: start block found */
+	xfs_rtxnum_t	start,		/* starting rtext to look at */
+	xfs_rtxnum_t	limit,		/* last rtext to look at */
+	xfs_rtxnum_t	*rtx)		/* out: start rtext found */
 {
 	xfs_rtword_t	*b;		/* current word in buffer */
 	int		bit;		/* bit number in the word */
@@ -112,9 +112,9 @@ xfs_rtfind_back(
 	struct xfs_buf	*bp;		/* buf for the block */
 	xfs_rtword_t	*bufp;		/* starting word in buffer */
 	int		error;		/* error value */
-	xfs_rtblock_t	firstbit;	/* first useful bit in the word */
-	xfs_rtblock_t	i;		/* current bit number rel. to start */
-	xfs_rtblock_t	len;		/* length of inspected area */
+	xfs_rtxnum_t	firstbit;	/* first useful bit in the word */
+	xfs_rtxnum_t	i;		/* current bit number rel. to start */
+	xfs_rtxnum_t	len;		/* length of inspected area */
 	xfs_rtword_t	mask;		/* mask of relevant bits for value */
 	xfs_rtword_t	want;		/* mask for "good" values */
 	xfs_rtword_t	wdiff;		/* difference from wanted value */
@@ -163,7 +163,7 @@ xfs_rtfind_back(
 			 */
 			xfs_trans_brelse(tp, bp);
 			i = bit - XFS_RTHIBIT(wdiff);
-			*rtblock = start - i + 1;
+			*rtx = start - i + 1;
 			return 0;
 		}
 		i = bit - firstbit + 1;
@@ -209,7 +209,7 @@ xfs_rtfind_back(
 			 */
 			xfs_trans_brelse(tp, bp);
 			i += XFS_NBWORD - 1 - XFS_RTHIBIT(wdiff);
-			*rtblock = start - i + 1;
+			*rtx = start - i + 1;
 			return 0;
 		}
 		i += XFS_NBWORD;
@@ -256,7 +256,7 @@ xfs_rtfind_back(
 			 */
 			xfs_trans_brelse(tp, bp);
 			i += XFS_NBWORD - 1 - XFS_RTHIBIT(wdiff);
-			*rtblock = start - i + 1;
+			*rtx = start - i + 1;
 			return 0;
 		} else
 			i = len;
@@ -265,7 +265,7 @@ xfs_rtfind_back(
 	 * No match, return that we scanned the whole area.
 	 */
 	xfs_trans_brelse(tp, bp);
-	*rtblock = start - i + 1;
+	*rtx = start - i + 1;
 	return 0;
 }
 
@@ -277,9 +277,9 @@ int
 xfs_rtfind_forw(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	start,		/* starting block to look at */
-	xfs_rtblock_t	limit,		/* last block to look at */
-	xfs_rtblock_t	*rtblock)	/* out: start block found */
+	xfs_rtxnum_t	start,		/* starting rtext to look at */
+	xfs_rtxnum_t	limit,		/* last rtext to look at */
+	xfs_rtxnum_t	*rtx)		/* out: start rtext found */
 {
 	xfs_rtword_t	*b;		/* current word in buffer */
 	int		bit;		/* bit number in the word */
@@ -287,9 +287,9 @@ xfs_rtfind_forw(
 	struct xfs_buf	*bp;		/* buf for the block */
 	xfs_rtword_t	*bufp;		/* starting word in buffer */
 	int		error;		/* error value */
-	xfs_rtblock_t	i;		/* current bit number rel. to start */
-	xfs_rtblock_t	lastbit;	/* last useful bit in the word */
-	xfs_rtblock_t	len;		/* length of inspected area */
+	xfs_rtxnum_t	i;		/* current bit number rel. to start */
+	xfs_rtxnum_t	lastbit;	/* last useful bit in the word */
+	xfs_rtxnum_t	len;		/* length of inspected area */
 	xfs_rtword_t	mask;		/* mask of relevant bits for value */
 	xfs_rtword_t	want;		/* mask for "good" values */
 	xfs_rtword_t	wdiff;		/* difference from wanted value */
@@ -337,7 +337,7 @@ xfs_rtfind_forw(
 			 */
 			xfs_trans_brelse(tp, bp);
 			i = XFS_RTLOBIT(wdiff) - bit;
-			*rtblock = start + i - 1;
+			*rtx = start + i - 1;
 			return 0;
 		}
 		i = lastbit - bit;
@@ -382,7 +382,7 @@ xfs_rtfind_forw(
 			 */
 			xfs_trans_brelse(tp, bp);
 			i += XFS_RTLOBIT(wdiff);
-			*rtblock = start + i - 1;
+			*rtx = start + i - 1;
 			return 0;
 		}
 		i += XFS_NBWORD;
@@ -426,7 +426,7 @@ xfs_rtfind_forw(
 			 */
 			xfs_trans_brelse(tp, bp);
 			i += XFS_RTLOBIT(wdiff);
-			*rtblock = start + i - 1;
+			*rtx = start + i - 1;
 			return 0;
 		} else
 			i = len;
@@ -435,7 +435,7 @@ xfs_rtfind_forw(
 	 * No match, return that we scanned the whole area.
 	 */
 	xfs_trans_brelse(tp, bp);
-	*rtblock = start + i - 1;
+	*rtx = start + i - 1;
 	return 0;
 }
 
@@ -540,7 +540,7 @@ int
 xfs_rtmodify_range(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	start,		/* starting block to modify */
+	xfs_rtxnum_t	start,		/* starting rtext to modify */
 	xfs_rtxlen_t	len,		/* length of extent to modify */
 	int		val)		/* 1 for free, 0 for allocated */
 {
@@ -696,15 +696,15 @@ int
 xfs_rtfree_range(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	start,		/* starting block to free */
+	xfs_rtxnum_t	start,		/* starting rtext to free */
 	xfs_rtxlen_t	len,		/* length to free */
 	struct xfs_buf	**rbpp,		/* in/out: summary block buffer */
 	xfs_fileoff_t	*rsb)		/* in/out: summary block number */
 {
-	xfs_rtblock_t	end;		/* end of the freed extent */
+	xfs_rtxnum_t	end;		/* end of the freed extent */
 	int		error;		/* error value */
-	xfs_rtblock_t	postblock;	/* first block freed > end */
-	xfs_rtblock_t	preblock;	/* first block freed < start */
+	xfs_rtxnum_t	postblock;	/* first rtext freed > end */
+	xfs_rtxnum_t	preblock;	/* first rtext freed < start */
 
 	end = start + len - 1;
 	/*
@@ -772,10 +772,10 @@ int
 xfs_rtcheck_range(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	start,		/* starting block number of extent */
+	xfs_rtxnum_t	start,		/* starting rtext number of extent */
 	xfs_rtxlen_t	len,		/* length of extent */
 	int		val,		/* 1 for free, 0 for allocated */
-	xfs_rtblock_t	*new,		/* out: first block not matching */
+	xfs_rtxnum_t	*new,		/* out: first rtext not matching */
 	int		*stat)		/* out: 1 for matches, 0 for not */
 {
 	xfs_rtword_t	*b;		/* current word in buffer */
@@ -784,8 +784,8 @@ xfs_rtcheck_range(
 	struct xfs_buf	*bp;		/* buf for the block */
 	xfs_rtword_t	*bufp;		/* starting word in buffer */
 	int		error;		/* error value */
-	xfs_rtblock_t	i;		/* current bit number rel. to start */
-	xfs_rtblock_t	lastbit;	/* last useful bit in word */
+	xfs_rtxnum_t	i;		/* current bit number rel. to start */
+	xfs_rtxnum_t	lastbit;	/* last useful bit in word */
 	xfs_rtword_t	mask;		/* mask of relevant bits for value */
 	xfs_rtword_t	wdiff;		/* difference from wanted value */
 	int		word;		/* word number in the buffer */
@@ -948,14 +948,14 @@ STATIC int				/* error */
 xfs_rtcheck_alloc_range(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	bno,		/* starting block number of extent */
+	xfs_rtxnum_t	start,		/* starting rtext number of extent */
 	xfs_rtxlen_t	len)		/* length of extent */
 {
-	xfs_rtblock_t	new;		/* dummy for xfs_rtcheck_range */
+	xfs_rtxnum_t	new;		/* dummy for xfs_rtcheck_range */
 	int		stat;
 	int		error;
 
-	error = xfs_rtcheck_range(mp, tp, bno, len, 0, &new, &stat);
+	error = xfs_rtcheck_range(mp, tp, start, len, 0, &new, &stat);
 	if (error)
 		return error;
 	ASSERT(stat);
@@ -971,7 +971,7 @@ xfs_rtcheck_alloc_range(
 int					/* error */
 xfs_rtfree_extent(
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	bno,		/* starting block number to free */
+	xfs_rtxnum_t	start,		/* starting rtext number to free */
 	xfs_rtxlen_t	len)		/* length of extent freed */
 {
 	int		error;		/* error value */
@@ -984,14 +984,14 @@ xfs_rtfree_extent(
 	ASSERT(mp->m_rbmip->i_itemp != NULL);
 	ASSERT(xfs_isilocked(mp->m_rbmip, XFS_ILOCK_EXCL));
 
-	error = xfs_rtcheck_alloc_range(mp, tp, bno, len);
+	error = xfs_rtcheck_alloc_range(mp, tp, start, len);
 	if (error)
 		return error;
 
 	/*
 	 * Free the range of realtime blocks.
 	 */
-	error = xfs_rtfree_range(mp, tp, bno, len, &sumbp, &sb);
+	error = xfs_rtfree_range(mp, tp, start, len, &sumbp, &sb);
 	if (error) {
 		return error;
 	}
@@ -1025,7 +1025,7 @@ xfs_rtfree_blocks(
 	xfs_filblks_t		rtlen)
 {
 	struct xfs_mount	*mp = tp->t_mountp;
-	xfs_rtblock_t		bno;
+	xfs_rtxnum_t		start;
 	xfs_filblks_t		len;
 	xfs_extlen_t		mod;
 
@@ -1037,13 +1037,13 @@ xfs_rtfree_blocks(
 		return -EIO;
 	}
 
-	bno = div_u64_rem(rtbno, mp->m_sb.sb_rextsize, &mod);
+	start = div_u64_rem(rtbno, mp->m_sb.sb_rextsize, &mod);
 	if (mod) {
 		ASSERT(mod == 0);
 		return -EIO;
 	}
 
-	return xfs_rtfree_extent(tp, bno, len);
+	return xfs_rtfree_extent(tp, start, len);
 }
 
 /* Find all the free records within a given range. */
@@ -1057,9 +1057,9 @@ xfs_rtalloc_query_range(
 	void				*priv)
 {
 	struct xfs_rtalloc_rec		rec;
-	xfs_rtblock_t			rtstart;
-	xfs_rtblock_t			rtend;
-	xfs_rtblock_t			high_key;
+	xfs_rtxnum_t			rtstart;
+	xfs_rtxnum_t			rtend;
+	xfs_rtxnum_t			high_key;
 	int				is_free;
 	int				error = 0;
 
@@ -1122,11 +1122,11 @@ int
 xfs_rtalloc_extent_is_free(
 	struct xfs_mount		*mp,
 	struct xfs_trans		*tp,
-	xfs_rtblock_t			start,
+	xfs_rtxnum_t			start,
 	xfs_rtxlen_t			len,
 	bool				*is_free)
 {
-	xfs_rtblock_t			end;
+	xfs_rtxnum_t			end;
 	int				matches;
 	int				error;
 
diff --git a/fs/xfs/libxfs/xfs_rtbitmap.h b/fs/xfs/libxfs/xfs_rtbitmap.h
index b0a81fb8dbda..5e2afb7fea0e 100644
--- a/fs/xfs/libxfs/xfs_rtbitmap.h
+++ b/fs/xfs/libxfs/xfs_rtbitmap.h
@@ -7,12 +7,10 @@
 #define	__XFS_RTBITMAP_H__
 
 /*
- * XXX: Most of the realtime allocation functions deal in units of realtime
- * extents, not realtime blocks.  This looks funny when paired with the type
- * name and screams for a larger cleanup.
+ * Functions for walking free space rtextents in the realtime bitmap.
  */
 struct xfs_rtalloc_rec {
-	xfs_rtblock_t		ar_startext;
+	xfs_rtxnum_t		ar_startext;
 	xfs_rtbxlen_t		ar_extcount;
 };
 
@@ -26,16 +24,16 @@ typedef int (*xfs_rtalloc_query_range_fn)(
 int xfs_rtbuf_get(struct xfs_mount *mp, struct xfs_trans *tp,
 		  xfs_fileoff_t block, int issum, struct xfs_buf **bpp);
 int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp,
-		      xfs_rtblock_t start, xfs_rtxlen_t len, int val,
-		      xfs_rtblock_t *new, int *stat);
+		      xfs_rtxnum_t start, xfs_rtxlen_t len, int val,
+		      xfs_rtxnum_t *new, int *stat);
 int xfs_rtfind_back(struct xfs_mount *mp, struct xfs_trans *tp,
-		    xfs_rtblock_t start, xfs_rtblock_t limit,
-		    xfs_rtblock_t *rtblock);
+		    xfs_rtxnum_t start, xfs_rtxnum_t limit,
+		    xfs_rtxnum_t *rtblock);
 int xfs_rtfind_forw(struct xfs_mount *mp, struct xfs_trans *tp,
-		    xfs_rtblock_t start, xfs_rtblock_t limit,
-		    xfs_rtblock_t *rtblock);
+		    xfs_rtxnum_t start, xfs_rtxnum_t limit,
+		    xfs_rtxnum_t *rtblock);
 int xfs_rtmodify_range(struct xfs_mount *mp, struct xfs_trans *tp,
-		       xfs_rtblock_t start, xfs_rtxlen_t len, int val);
+		       xfs_rtxnum_t start, xfs_rtxlen_t len, int val);
 int xfs_rtmodify_summary_int(struct xfs_mount *mp, struct xfs_trans *tp,
 			     int log, xfs_fileoff_t bbno, int delta,
 			     struct xfs_buf **rbpp, xfs_fileoff_t *rsb,
@@ -44,7 +42,7 @@ int xfs_rtmodify_summary(struct xfs_mount *mp, struct xfs_trans *tp, int log,
 			 xfs_fileoff_t bbno, int delta, struct xfs_buf **rbpp,
 			 xfs_fileoff_t *rsb);
 int xfs_rtfree_range(struct xfs_mount *mp, struct xfs_trans *tp,
-		     xfs_rtblock_t start, xfs_rtxlen_t len,
+		     xfs_rtxnum_t start, xfs_rtxlen_t len,
 		     struct xfs_buf **rbpp, xfs_fileoff_t *rsb);
 int xfs_rtalloc_query_range(struct xfs_mount *mp, struct xfs_trans *tp,
 		const struct xfs_rtalloc_rec *low_rec,
@@ -54,7 +52,7 @@ int xfs_rtalloc_query_all(struct xfs_mount *mp, struct xfs_trans *tp,
 			  xfs_rtalloc_query_range_fn fn,
 			  void *priv);
 int xfs_rtalloc_extent_is_free(struct xfs_mount *mp, struct xfs_trans *tp,
-			       xfs_rtblock_t start, xfs_rtxlen_t len,
+			       xfs_rtxnum_t start, xfs_rtxlen_t len,
 			       bool *is_free);
 /*
  * Free an extent in the realtime subvolume.  Length is expressed in
@@ -63,7 +61,7 @@ int xfs_rtalloc_extent_is_free(struct xfs_mount *mp, struct xfs_trans *tp,
 int					/* error */
 xfs_rtfree_extent(
 	struct xfs_trans	*tp,	/* transaction pointer */
-	xfs_rtblock_t		bno,	/* starting block number to free */
+	xfs_rtxnum_t		start,	/* starting rtext number to free */
 	xfs_rtxlen_t		len);	/* length of extent freed */
 
 /* Same as above, but in units of rt blocks. */
diff --git a/fs/xfs/libxfs/xfs_types.h b/fs/xfs/libxfs/xfs_types.h
index 532447a35732..abb07a1c7b0b 100644
--- a/fs/xfs/libxfs/xfs_types.h
+++ b/fs/xfs/libxfs/xfs_types.h
@@ -32,6 +32,7 @@ typedef uint64_t	xfs_rfsblock_t;	/* blockno in filesystem (raw) */
 typedef uint64_t	xfs_rtblock_t;	/* extent (block) in realtime area */
 typedef uint64_t	xfs_fileoff_t;	/* block number in a file */
 typedef uint64_t	xfs_filblks_t;	/* number of blocks in a file */
+typedef uint64_t	xfs_rtxnum_t;	/* rtextent number */
 typedef uint64_t	xfs_rtbxlen_t;	/* rtbitmap extent length in rtextents */
 
 typedef int64_t		xfs_srtblock_t;	/* signed version of xfs_rtblock_t */
@@ -49,6 +50,7 @@ typedef void *		xfs_failaddr_t;
 #define	NULLRFSBLOCK	((xfs_rfsblock_t)-1)
 #define	NULLRTBLOCK	((xfs_rtblock_t)-1)
 #define	NULLFILEOFF	((xfs_fileoff_t)-1)
+#define NULLRTEXTNO	((xfs_rtxnum_t)-1)
 
 #define	NULLAGBLOCK	((xfs_agblock_t)-1)
 #define	NULLAGNUMBER	((xfs_agnumber_t)-1)
diff --git a/fs/xfs/scrub/rtbitmap.c b/fs/xfs/scrub/rtbitmap.c
index 051abef66bc6..29c5af5a289f 100644
--- a/fs/xfs/scrub/rtbitmap.c
+++ b/fs/xfs/scrub/rtbitmap.c
@@ -59,7 +59,7 @@ xchk_rtbitmap_rec(
 	void			*priv)
 {
 	struct xfs_scrub	*sc = priv;
-	xfs_rtblock_t		startblock;
+	xfs_rtxnum_t		startblock;
 	xfs_filblks_t		blockcount;
 
 	startblock = rec->ar_startext * mp->m_sb.sb_rextsize;
@@ -143,8 +143,8 @@ xchk_xref_is_used_rt_space(
 	xfs_rtblock_t		fsbno,
 	xfs_extlen_t		len)
 {
-	xfs_rtblock_t		startext;
-	xfs_rtblock_t		endext;
+	xfs_rtxnum_t		startext;
+	xfs_rtxnum_t		endext;
 	xfs_rtxlen_t		extcount;
 	bool			is_free;
 	int			error;
diff --git a/fs/xfs/scrub/rtsummary.c b/fs/xfs/scrub/rtsummary.c
index c9e5a3bbdfdc..91c39564298c 100644
--- a/fs/xfs/scrub/rtsummary.c
+++ b/fs/xfs/scrub/rtsummary.c
@@ -123,7 +123,7 @@ xchk_rtsum_record_free(
 {
 	struct xfs_scrub		*sc = priv;
 	xfs_fileoff_t			rbmoff;
-	xfs_rtblock_t			rtbno;
+	xfs_rtxnum_t			rtbno;
 	xfs_filblks_t			rtlen;
 	xchk_rtsumoff_t			offs;
 	unsigned int			lenlog;
diff --git a/fs/xfs/scrub/trace.h b/fs/xfs/scrub/trace.h
index 13fea23a9ab2..650a4c88ebc4 100644
--- a/fs/xfs/scrub/trace.h
+++ b/fs/xfs/scrub/trace.h
@@ -1081,14 +1081,14 @@ TRACE_EVENT(xfarray_sort_stats,
 
 #ifdef CONFIG_XFS_RT
 TRACE_EVENT(xchk_rtsum_record_free,
-	TP_PROTO(struct xfs_mount *mp, xfs_rtblock_t start,
+	TP_PROTO(struct xfs_mount *mp, xfs_rtxnum_t start,
 		 xfs_rtbxlen_t len, unsigned int log, loff_t pos,
 		 xfs_suminfo_t v),
 	TP_ARGS(mp, start, len, log, pos, v),
 	TP_STRUCT__entry(
 		__field(dev_t, dev)
 		__field(dev_t, rtdev)
-		__field(xfs_rtblock_t, start)
+		__field(xfs_rtxnum_t, start)
 		__field(unsigned long long, len)
 		__field(unsigned int, log)
 		__field(loff_t, pos)
diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
index 20c1b4f55788..018c3bcc225e 100644
--- a/fs/xfs/xfs_bmap_util.c
+++ b/fs/xfs/xfs_bmap_util.c
@@ -76,7 +76,7 @@ xfs_bmap_rtalloc(
 {
 	struct xfs_mount	*mp = ap->ip->i_mount;
 	xfs_fileoff_t		orig_offset = ap->offset;
-	xfs_rtblock_t		rtb;
+	xfs_rtxnum_t		rtx;
 	xfs_rtxlen_t		prod = 0;  /* product factor for allocators */
 	xfs_extlen_t		mod = 0;   /* product factor for allocators */
 	xfs_rtxlen_t		ralen = 0; /* realtime allocation length */
@@ -145,8 +145,6 @@ xfs_bmap_rtalloc(
 	 * pick an extent that will space things out in the rt area.
 	 */
 	if (ap->eof && ap->offset == 0) {
-		xfs_rtblock_t rtx; /* realtime extent no */
-
 		error = xfs_rtpick_extent(mp, ap->tp, ralen, &rtx);
 		if (error)
 			return error;
@@ -164,16 +162,16 @@ xfs_bmap_rtalloc(
 		ap->blkno = 0;
 	else
 		do_div(ap->blkno, mp->m_sb.sb_rextsize);
-	rtb = ap->blkno;
+	rtx = ap->blkno;
 	ap->length = ralen;
 	raminlen = max_t(xfs_extlen_t, 1, minlen / mp->m_sb.sb_rextsize);
 	error = xfs_rtallocate_extent(ap->tp, ap->blkno, raminlen, ap->length,
-			&ralen, ap->wasdel, prod, &rtb);
+			&ralen, ap->wasdel, prod, &rtx);
 	if (error)
 		return error;
 
-	if (rtb != NULLRTBLOCK) {
-		ap->blkno = rtb * mp->m_sb.sb_rextsize;
+	if (rtx != NULLRTEXTNO) {
+		ap->blkno = rtx * mp->m_sb.sb_rextsize;
 		ap->length = ralen * mp->m_sb.sb_rextsize;
 		ap->ip->i_nblocks += ap->length;
 		xfs_trans_log_inode(ap->tp, ap->ip, XFS_ILOG_CORE);
diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
index 12d1fe425d22..40b6df0ad633 100644
--- a/fs/xfs/xfs_rtalloc.c
+++ b/fs/xfs/xfs_rtalloc.c
@@ -148,15 +148,15 @@ STATIC int				/* error */
 xfs_rtallocate_range(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	start,		/* start block to allocate */
+	xfs_rtxnum_t	start,		/* start rtext to allocate */
 	xfs_rtxlen_t	len,		/* length to allocate */
 	struct xfs_buf	**rbpp,		/* in/out: summary block buffer */
 	xfs_fileoff_t	*rsb)		/* in/out: summary block number */
 {
-	xfs_rtblock_t	end;		/* end of the allocated extent */
+	xfs_rtxnum_t	end;		/* end of the allocated rtext */
 	int		error;		/* error value */
-	xfs_rtblock_t	postblock = 0;	/* first block allocated > end */
-	xfs_rtblock_t	preblock = 0;	/* first block allocated < start */
+	xfs_rtxnum_t	postblock = 0;	/* first rtext allocated > end */
+	xfs_rtxnum_t	preblock = 0;	/* first rtext allocated < start */
 
 	end = start + len - 1;
 	/*
@@ -220,7 +220,7 @@ xfs_rtallocate_range(
 /*
  * Attempt to allocate an extent minlen<=len<=maxlen starting from
  * bitmap block bbno.  If we don't get maxlen then use prod to trim
- * the length, if given.  Returns error; returns starting block in *rtblock.
+ * the length, if given.  Returns error; returns starting block in *rtx.
  * The lengths are all in rtextents.
  */
 STATIC int				/* error */
@@ -231,18 +231,18 @@ xfs_rtallocate_extent_block(
 	xfs_rtxlen_t	minlen,		/* minimum length to allocate */
 	xfs_rtxlen_t	maxlen,		/* maximum length to allocate */
 	xfs_rtxlen_t	*len,		/* out: actual length allocated */
-	xfs_rtblock_t	*nextp,		/* out: next block to try */
+	xfs_rtxnum_t	*nextp,		/* out: next rtext to try */
 	struct xfs_buf	**rbpp,		/* in/out: summary block buffer */
 	xfs_fileoff_t	*rsb,		/* in/out: summary block number */
 	xfs_rtxlen_t	prod,		/* extent product factor */
-	xfs_rtblock_t	*rtblock)	/* out: start block allocated */
+	xfs_rtxnum_t	*rtx)		/* out: start rtext allocated */
 {
-	xfs_rtblock_t	besti;		/* best rtblock found so far */
-	xfs_rtblock_t	bestlen;	/* best length found so far */
-	xfs_rtblock_t	end;		/* last rtblock in chunk */
+	xfs_rtxnum_t	besti;		/* best rtext found so far */
+	xfs_rtxnum_t	bestlen;	/* best length found so far */
+	xfs_rtxnum_t	end;		/* last rtext in chunk */
 	int		error;		/* error value */
-	xfs_rtblock_t	i;		/* current rtblock trying */
-	xfs_rtblock_t	next;		/* next rtblock to try */
+	xfs_rtxnum_t	i;		/* current rtext trying */
+	xfs_rtxnum_t	next;		/* next rtext to try */
 	int		stat;		/* status from internal calls */
 
 	/*
@@ -279,7 +279,7 @@ xfs_rtallocate_extent_block(
 				return error;
 			}
 			*len = maxlen;
-			*rtblock = i;
+			*rtx = i;
 			return 0;
 		}
 		/*
@@ -289,7 +289,7 @@ xfs_rtallocate_extent_block(
 		 * so far, remember it.
 		 */
 		if (minlen < maxlen) {
-			xfs_rtblock_t	thislen;	/* this extent size */
+			xfs_rtxnum_t	thislen;	/* this extent size */
 
 			thislen = next - i;
 			if (thislen >= minlen && thislen > bestlen) {
@@ -331,47 +331,47 @@ xfs_rtallocate_extent_block(
 			return error;
 		}
 		*len = bestlen;
-		*rtblock = besti;
+		*rtx = besti;
 		return 0;
 	}
 	/*
 	 * Allocation failed.  Set *nextp to the next block to try.
 	 */
 	*nextp = next;
-	*rtblock = NULLRTBLOCK;
+	*rtx = NULLRTEXTNO;
 	return 0;
 }
 
 /*
  * Allocate an extent of length minlen<=len<=maxlen, starting at block
  * bno.  If we don't get maxlen then use prod to trim the length, if given.
- * Returns error; returns starting block in *rtblock.
+ * Returns error; returns starting block in *rtx.
  * The lengths are all in rtextents.
  */
 STATIC int				/* error */
 xfs_rtallocate_extent_exact(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	bno,		/* starting block number to allocate */
+	xfs_rtxnum_t	start,		/* starting rtext number to allocate */
 	xfs_rtxlen_t	minlen,		/* minimum length to allocate */
 	xfs_rtxlen_t	maxlen,		/* maximum length to allocate */
 	xfs_rtxlen_t	*len,		/* out: actual length allocated */
 	struct xfs_buf	**rbpp,		/* in/out: summary block buffer */
 	xfs_fileoff_t	*rsb,		/* in/out: summary block number */
 	xfs_rtxlen_t	prod,		/* extent product factor */
-	xfs_rtblock_t	*rtblock)	/* out: start block allocated */
+	xfs_rtxnum_t	*rtx)		/* out: start rtext allocated */
 {
 	int		error;		/* error value */
 	xfs_rtxlen_t	i;		/* extent length trimmed due to prod */
 	int		isfree;		/* extent is free */
-	xfs_rtblock_t	next;		/* next block to try (dummy) */
+	xfs_rtxnum_t	next;		/* next rtext to try (dummy) */
 
 	ASSERT(minlen % prod == 0);
 	ASSERT(maxlen % prod == 0);
 	/*
 	 * Check if the range in question (for maxlen) is free.
 	 */
-	error = xfs_rtcheck_range(mp, tp, bno, maxlen, 1, &next, &isfree);
+	error = xfs_rtcheck_range(mp, tp, start, maxlen, 1, &next, &isfree);
 	if (error) {
 		return error;
 	}
@@ -379,23 +379,23 @@ xfs_rtallocate_extent_exact(
 		/*
 		 * If it is, allocate it and return success.
 		 */
-		error = xfs_rtallocate_range(mp, tp, bno, maxlen, rbpp, rsb);
+		error = xfs_rtallocate_range(mp, tp, start, maxlen, rbpp, rsb);
 		if (error) {
 			return error;
 		}
 		*len = maxlen;
-		*rtblock = bno;
+		*rtx = start;
 		return 0;
 	}
 	/*
 	 * If not, allocate what there is, if it's at least minlen.
 	 */
-	maxlen = next - bno;
+	maxlen = next - start;
 	if (maxlen < minlen) {
 		/*
 		 * Failed, return failure status.
 		 */
-		*rtblock = NULLRTBLOCK;
+		*rtx = NULLRTEXTNO;
 		return 0;
 	}
 	/*
@@ -407,39 +407,39 @@ xfs_rtallocate_extent_exact(
 			/*
 			 * Now we can't do it, return failure status.
 			 */
-			*rtblock = NULLRTBLOCK;
+			*rtx = NULLRTEXTNO;
 			return 0;
 		}
 	}
 	/*
 	 * Allocate what we can and return it.
 	 */
-	error = xfs_rtallocate_range(mp, tp, bno, maxlen, rbpp, rsb);
+	error = xfs_rtallocate_range(mp, tp, start, maxlen, rbpp, rsb);
 	if (error) {
 		return error;
 	}
 	*len = maxlen;
-	*rtblock = bno;
+	*rtx = start;
 	return 0;
 }
 
 /*
  * Allocate an extent of length minlen<=len<=maxlen, starting as near
- * to bno as possible.  If we don't get maxlen then use prod to trim
+ * to start as possible.  If we don't get maxlen then use prod to trim
  * the length, if given.  The lengths are all in rtextents.
  */
 STATIC int				/* error */
 xfs_rtallocate_extent_near(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	bno,		/* starting block number to allocate */
+	xfs_rtxnum_t	start,		/* starting rtext number to allocate */
 	xfs_rtxlen_t	minlen,		/* minimum length to allocate */
 	xfs_rtxlen_t	maxlen,		/* maximum length to allocate */
 	xfs_rtxlen_t	*len,		/* out: actual length allocated */
 	struct xfs_buf	**rbpp,		/* in/out: summary block buffer */
 	xfs_fileoff_t	*rsb,		/* in/out: summary block number */
 	xfs_rtxlen_t	prod,		/* extent product factor */
-	xfs_rtblock_t	*rtblock)	/* out: start block allocated */
+	xfs_rtxnum_t	*rtx)		/* out: start rtext allocated */
 {
 	int		any;		/* any useful extents from summary */
 	xfs_fileoff_t	bbno;		/* bitmap block number */
@@ -447,8 +447,8 @@ xfs_rtallocate_extent_near(
 	int		i;		/* bitmap block offset (loop control) */
 	int		j;		/* secondary loop control */
 	int		log2len;	/* log2 of minlen */
-	xfs_rtblock_t	n;		/* next block to try */
-	xfs_rtblock_t	r;		/* result block */
+	xfs_rtxnum_t	n;		/* next rtext to try */
+	xfs_rtxnum_t	r;		/* result rtext */
 
 	ASSERT(minlen % prod == 0);
 	ASSERT(maxlen % prod == 0);
@@ -457,25 +457,25 @@ xfs_rtallocate_extent_near(
 	 * If the block number given is off the end, silently set it to
 	 * the last block.
 	 */
-	if (bno >= mp->m_sb.sb_rextents)
-		bno = mp->m_sb.sb_rextents - 1;
+	if (start >= mp->m_sb.sb_rextents)
+		start = mp->m_sb.sb_rextents - 1;
 
 	/*
 	 * Make sure we don't run off the end of the rt volume.  Be careful
 	 * that adjusting maxlen downwards doesn't cause us to fail the
 	 * alignment checks.
 	 */
-	maxlen = min(mp->m_sb.sb_rextents, bno + maxlen) - bno;
+	maxlen = min(mp->m_sb.sb_rextents, start + maxlen) - start;
 	maxlen -= maxlen % prod;
 	if (maxlen < minlen) {
-		*rtblock = NULLRTBLOCK;
+		*rtx = NULLRTEXTNO;
 		return 0;
 	}
 
 	/*
 	 * Try the exact allocation first.
 	 */
-	error = xfs_rtallocate_extent_exact(mp, tp, bno, minlen, maxlen, len,
+	error = xfs_rtallocate_extent_exact(mp, tp, start, minlen, maxlen, len,
 		rbpp, rsb, prod, &r);
 	if (error) {
 		return error;
@@ -483,11 +483,11 @@ xfs_rtallocate_extent_near(
 	/*
 	 * If the exact allocation worked, return that.
 	 */
-	if (r != NULLRTBLOCK) {
-		*rtblock = r;
+	if (r != NULLRTEXTNO) {
+		*rtx = r;
 		return 0;
 	}
-	bbno = XFS_BITTOBLOCK(mp, bno);
+	bbno = XFS_BITTOBLOCK(mp, start);
 	i = 0;
 	ASSERT(minlen != 0);
 	log2len = xfs_highbit32(minlen);
@@ -526,8 +526,8 @@ xfs_rtallocate_extent_near(
 				/*
 				 * If it worked, return it.
 				 */
-				if (r != NULLRTBLOCK) {
-					*rtblock = r;
+				if (r != NULLRTEXTNO) {
+					*rtx = r;
 					return 0;
 				}
 			}
@@ -571,8 +571,8 @@ xfs_rtallocate_extent_near(
 					/*
 					 * If it works, return the extent.
 					 */
-					if (r != NULLRTBLOCK) {
-						*rtblock = r;
+					if (r != NULLRTEXTNO) {
+						*rtx = r;
 						return 0;
 					}
 				}
@@ -593,8 +593,8 @@ xfs_rtallocate_extent_near(
 				/*
 				 * If it works, return the extent.
 				 */
-				if (r != NULLRTBLOCK) {
-					*rtblock = r;
+				if (r != NULLRTEXTNO) {
+					*rtx = r;
 					return 0;
 				}
 			}
@@ -629,7 +629,7 @@ xfs_rtallocate_extent_near(
 		else
 			break;
 	}
-	*rtblock = NULLRTBLOCK;
+	*rtx = NULLRTEXTNO;
 	return 0;
 }
 
@@ -648,13 +648,13 @@ xfs_rtallocate_extent_size(
 	struct xfs_buf	**rbpp,		/* in/out: summary block buffer */
 	xfs_fileoff_t	*rsb,		/* in/out: summary block number */
 	xfs_rtxlen_t	prod,		/* extent product factor */
-	xfs_rtblock_t	*rtblock)	/* out: start block allocated */
+	xfs_rtxnum_t	*rtx)		/* out: start rtext allocated */
 {
 	int		error;		/* error value */
 	xfs_fileoff_t	i;		/* bitmap block number */
 	int		l;		/* level number (loop control) */
-	xfs_rtblock_t	n;		/* next block to be tried */
-	xfs_rtblock_t	r;		/* result block number */
+	xfs_rtxnum_t	n;		/* next rtext to be tried */
+	xfs_rtxnum_t	r;		/* result rtext number */
 	xfs_suminfo_t	sum;		/* summary information for extents */
 
 	ASSERT(minlen % prod == 0);
@@ -697,8 +697,8 @@ xfs_rtallocate_extent_size(
 			/*
 			 * If it worked, return that.
 			 */
-			if (r != NULLRTBLOCK) {
-				*rtblock = r;
+			if (r != NULLRTEXTNO) {
+				*rtx = r;
 				return 0;
 			}
 			/*
@@ -715,7 +715,7 @@ xfs_rtallocate_extent_size(
 	 * we're asking for a fixed size extent.
 	 */
 	if (minlen > --maxlen) {
-		*rtblock = NULLRTBLOCK;
+		*rtx = NULLRTEXTNO;
 		return 0;
 	}
 	ASSERT(minlen != 0);
@@ -760,8 +760,8 @@ xfs_rtallocate_extent_size(
 			/*
 			 * If it worked, return that extent.
 			 */
-			if (r != NULLRTBLOCK) {
-				*rtblock = r;
+			if (r != NULLRTEXTNO) {
+				*rtx = r;
 				return 0;
 			}
 			/*
@@ -776,7 +776,7 @@ xfs_rtallocate_extent_size(
 	/*
 	 * Got nothing, return failure.
 	 */
-	*rtblock = NULLRTBLOCK;
+	*rtx = NULLRTEXTNO;
 	return 0;
 }
 
@@ -933,7 +933,7 @@ xfs_growfs_rt(
 	xfs_mount_t	*nmp;		/* new (fake) mount structure */
 	xfs_rfsblock_t	nrblocks;	/* new number of realtime blocks */
 	xfs_extlen_t	nrbmblocks;	/* new number of rt bitmap blocks */
-	xfs_rtblock_t	nrextents;	/* new number of realtime extents */
+	xfs_rtxnum_t	nrextents;	/* new number of realtime extents */
 	uint8_t		nrextslog;	/* new log2 of sb_rextents */
 	xfs_extlen_t	nrsumblocks;	/* new number of summary blocks */
 	uint		nrsumlevels;	/* new rt summary levels */
@@ -1194,17 +1194,17 @@ xfs_growfs_rt(
 int					/* error */
 xfs_rtallocate_extent(
 	xfs_trans_t	*tp,		/* transaction pointer */
-	xfs_rtblock_t	bno,		/* starting block number to allocate */
+	xfs_rtxnum_t	start,		/* starting rtext number to allocate */
 	xfs_rtxlen_t	minlen,		/* minimum length to allocate */
 	xfs_rtxlen_t	maxlen,		/* maximum length to allocate */
 	xfs_rtxlen_t	*len,		/* out: actual length allocated */
 	int		wasdel,		/* was a delayed allocation extent */
 	xfs_rtxlen_t	prod,		/* extent product factor */
-	xfs_rtblock_t	*rtblock)	/* out: start block allocated */
+	xfs_rtxnum_t	*rtblock)	/* out: start rtext allocated */
 {
 	xfs_mount_t	*mp = tp->t_mountp;
 	int		error;		/* error value */
-	xfs_rtblock_t	r;		/* result allocated block */
+	xfs_rtxnum_t	r;		/* result allocated rtext */
 	xfs_fileoff_t	sb;		/* summary file block number */
 	struct xfs_buf	*sumbp;		/* summary file block buffer */
 
@@ -1222,18 +1222,18 @@ xfs_rtallocate_extent(
 		if ((i = minlen % prod))
 			minlen += prod - i;
 		if (maxlen < minlen) {
-			*rtblock = NULLRTBLOCK;
+			*rtblock = NULLRTEXTNO;
 			return 0;
 		}
 	}
 
 retry:
 	sumbp = NULL;
-	if (bno == 0) {
+	if (start == 0) {
 		error = xfs_rtallocate_extent_size(mp, tp, minlen, maxlen, len,
 				&sumbp,	&sb, prod, &r);
 	} else {
-		error = xfs_rtallocate_extent_near(mp, tp, bno, minlen, maxlen,
+		error = xfs_rtallocate_extent_near(mp, tp, start, minlen, maxlen,
 				len, &sumbp, &sb, prod, &r);
 	}
 
@@ -1243,7 +1243,7 @@ xfs_rtallocate_extent(
 	/*
 	 * If it worked, update the superblock.
 	 */
-	if (r != NULLRTBLOCK) {
+	if (r != NULLRTEXTNO) {
 		long	slen = (long)*len;
 
 		ASSERT(*len >= minlen && *len <= maxlen);
@@ -1449,9 +1449,9 @@ xfs_rtpick_extent(
 	xfs_mount_t	*mp,		/* file system mount point */
 	xfs_trans_t	*tp,		/* transaction pointer */
 	xfs_rtxlen_t	len,		/* allocation length (rtextents) */
-	xfs_rtblock_t	*pick)		/* result rt extent */
+	xfs_rtxnum_t	*pick)		/* result rt extent */
 {
-	xfs_rtblock_t	b;		/* result block */
+	xfs_rtxnum_t	b;		/* result rtext */
 	int		log2;		/* log of sequence number */
 	uint64_t	resid;		/* residual after log removed */
 	uint64_t	seq;		/* sequence number of file creation */
diff --git a/fs/xfs/xfs_rtalloc.h b/fs/xfs/xfs_rtalloc.h
index ec03cc566bec..5ac9c15948c8 100644
--- a/fs/xfs/xfs_rtalloc.h
+++ b/fs/xfs/xfs_rtalloc.h
@@ -24,13 +24,13 @@ struct xfs_trans;
 int					/* error */
 xfs_rtallocate_extent(
 	struct xfs_trans	*tp,	/* transaction pointer */
-	xfs_rtblock_t		bno,	/* starting block number to allocate */
+	xfs_rtxnum_t		start,	/* starting rtext number to allocate */
 	xfs_rtxlen_t		minlen,	/* minimum length to allocate */
 	xfs_rtxlen_t		maxlen,	/* maximum length to allocate */
 	xfs_rtxlen_t		*len,	/* out: actual length allocated */
 	int			wasdel,	/* was a delayed allocation extent */
 	xfs_rtxlen_t		prod,	/* extent product factor */
-	xfs_rtblock_t		*rtblock); /* out: start block allocated */
+	xfs_rtxnum_t		*rtblock); /* out: start rtext allocated */
 
 
 /*
@@ -63,7 +63,7 @@ xfs_rtpick_extent(
 	struct xfs_mount	*mp,	/* file system mount point */
 	struct xfs_trans	*tp,	/* transaction pointer */
 	xfs_rtxlen_t		len,	/* allocation length (rtextents) */
-	xfs_rtblock_t		*pick);	/* result rt extent */
+	xfs_rtxnum_t		*pick);	/* result rt extent */
 
 /*
  * Grow the realtime area of the filesystem.


  parent reply	other threads:[~2022-12-31  1:22 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   ` Darrick J. Wong [this message]
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   ` [PATCH 01/22] xfs: create incore realtime group structures Darrick J. Wong
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=167243865772.709511.15835685162958364869.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.