From: Christoph Hellwig <hch@infradead.org>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: Christoph Hellwig <hch@infradead.org>, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 32/37] xfs: online repair of the realtime rmap btree
Date: Tue, 17 Dec 2024 22:55:00 -0800 [thread overview]
Message-ID: <Z2JxxKSSMS9NH5oR@infradead.org> (raw)
In-Reply-To: <20241217204112.GT6174@frogsfrogsfrogs>
On Tue, Dec 17, 2024 at 12:41:12PM -0800, Darrick J. Wong wrote:
> On Thu, Dec 12, 2024 at 11:29:16PM -0800, Christoph Hellwig wrote:
> > > Repair the realtime rmap btree while mounted.
> >
> > And actual description of how this repair works, and the changes to the
> > non-repair code required for it would be kinda useful.
>
> How about:
>
> "Repair the realtime rmap btree while mounted. Similar to the regular
> rmap btree repair code, we walk the data fork mappings of every realtime
> file in the filesystem to collect reverse-mapping records in an xfarray.
> Then we sort the xfarray, and use the btree bulk loader to create a new
> rtrmap btree ondisk. Finally, we swap the btree roots, and reap the old
> blocks in the usual way."
Sounds good.
next prev parent reply other threads:[~2024-12-18 6:55 UTC|newest]
Thread overview: 214+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-13 0:53 [PATCHBOMB 6.14 v6.0] xfs: realtime rmap and reflink Darrick J. Wong
2024-12-13 0:56 ` [PATCHSET v6.0 1/5] xfs: refactor btrees to support records in inode root Darrick J. Wong
2024-12-13 0:58 ` [PATCH 1/8] xfs: tidy up xfs_iroot_realloc Darrick J. Wong
2024-12-13 6:03 ` Christoph Hellwig
2024-12-13 0:58 ` [PATCH 2/8] xfs: refactor the inode fork memory allocation functions Darrick J. Wong
2024-12-13 6:05 ` Christoph Hellwig
2024-12-17 19:43 ` Darrick J. Wong
2024-12-13 0:58 ` [PATCH 3/8] xfs: make xfs_iroot_realloc take the new numrecs instead of deltas Darrick J. Wong
2024-12-13 6:06 ` Christoph Hellwig
2024-12-13 0:59 ` [PATCH 4/8] xfs: make xfs_iroot_realloc a bmap btree function Darrick J. Wong
2024-12-13 6:07 ` Christoph Hellwig
2024-12-13 0:59 ` [PATCH 5/8] xfs: tidy up xfs_bmap_broot_realloc a bit Darrick J. Wong
2024-12-13 6:07 ` Christoph Hellwig
2024-12-13 0:59 ` [PATCH 6/8] xfs: hoist the node iroot update code out of xfs_btree_new_iroot Darrick J. Wong
2024-12-13 6:08 ` Christoph Hellwig
2024-12-13 6:09 ` Christoph Hellwig
2024-12-13 0:59 ` [PATCH 7/8] xfs: hoist the node iroot update code out of xfs_btree_kill_iroot Darrick J. Wong
2024-12-13 6:09 ` Christoph Hellwig
2024-12-13 1:00 ` [PATCH 8/8] xfs: support storing records in the inode core root Darrick J. Wong
2024-12-13 6:10 ` Christoph Hellwig
2024-12-13 0:57 ` [PATCHSET v6.0 2/5] xfs: enable in-core block reservation for rt metadata Darrick J. Wong
2024-12-13 1:00 ` [PATCH 1/2] xfs: prepare to reuse the dquot pointer space in struct xfs_inode Darrick J. Wong
2024-12-13 1:00 ` [PATCH 2/2] xfs: allow inode-based btrees to reserve space in the data device Darrick J. Wong
2024-12-13 6:11 ` Christoph Hellwig
2024-12-17 19:58 ` Darrick J. Wong
2024-12-18 6:54 ` Christoph Hellwig
2024-12-13 0:57 ` [PATCHSET v6.0 3/5] xfs: realtime reverse-mapping support Darrick J. Wong
2024-12-13 1:00 ` [PATCH 01/37] xfs: add some rtgroup inode helpers Darrick J. Wong
2024-12-13 6:11 ` Christoph Hellwig
2024-12-13 1:01 ` [PATCH 02/37] xfs: prepare rmap btree cursor tracepoints for realtime Darrick J. Wong
2024-12-13 6:12 ` Christoph Hellwig
2024-12-13 1:01 ` [PATCH 03/37] xfs: simplify the xfs_rmap_{alloc,free}_extent calling conventions Darrick J. Wong
2024-12-13 6:20 ` Christoph Hellwig
2024-12-13 1:01 ` [PATCH 04/37] xfs: introduce realtime rmap btree ondisk definitions Darrick J. Wong
2024-12-13 6:23 ` Christoph Hellwig
2024-12-17 20:02 ` Darrick J. Wong
2024-12-13 1:01 ` [PATCH 05/37] xfs: realtime rmap btree transaction reservations Darrick J. Wong
2024-12-13 6:24 ` Christoph Hellwig
2024-12-13 1:02 ` [PATCH 06/37] xfs: add realtime rmap btree operations Darrick J. Wong
2024-12-13 6:24 ` Christoph Hellwig
2024-12-13 1:02 ` [PATCH 07/37] xfs: prepare rmap functions to deal with rtrmapbt Darrick J. Wong
2024-12-13 6:25 ` Christoph Hellwig
2024-12-13 1:02 ` [PATCH 08/37] xfs: add a realtime flag to the rmap update log redo items Darrick J. Wong
2024-12-13 6:26 ` Christoph Hellwig
2024-12-13 6:26 ` Christoph Hellwig
2024-12-13 1:02 ` [PATCH 09/37] xfs: support recovering rmap intent items targetting realtime extents Darrick J. Wong
2024-12-13 6:28 ` Christoph Hellwig
2024-12-13 1:03 ` [PATCH 10/37] xfs: pretty print metadata file types in error messages Darrick J. Wong
2024-12-13 6:30 ` Christoph Hellwig
2024-12-17 20:18 ` Darrick J. Wong
2024-12-13 1:03 ` [PATCH 11/37] xfs: support file data forks containing metadata btrees Darrick J. Wong
2024-12-13 6:49 ` Christoph Hellwig
2024-12-13 1:03 ` [PATCH 12/37] xfs: add realtime reverse map inode to metadata directory Darrick J. Wong
2024-12-13 6:49 ` Christoph Hellwig
2024-12-13 1:03 ` [PATCH 13/37] xfs: add metadata reservations for realtime rmap btrees Darrick J. Wong
2024-12-13 6:50 ` Christoph Hellwig
2024-12-13 1:04 ` [PATCH 14/37] xfs: wire up a new metafile type for the realtime rmap Darrick J. Wong
2024-12-13 7:14 ` Christoph Hellwig
2024-12-13 1:04 ` [PATCH 15/37] xfs: wire up rmap map and unmap to the realtime rmapbt Darrick J. Wong
2024-12-13 6:51 ` Christoph Hellwig
2024-12-13 1:04 ` [PATCH 16/37] xfs: create routine to allocate and initialize a realtime rmap btree inode Darrick J. Wong
2024-12-13 6:52 ` Christoph Hellwig
2024-12-13 1:05 ` [PATCH 17/37] xfs: wire up getfsmap to the realtime reverse mapping btree Darrick J. Wong
2024-12-13 6:53 ` Christoph Hellwig
2024-12-13 1:05 ` [PATCH 18/37] xfs: check that the rtrmapbt maxlevels doesn't increase when growing fs Darrick J. Wong
2024-12-13 6:53 ` Christoph Hellwig
2024-12-13 1:05 ` [PATCH 19/37] xfs: report realtime rmap btree corruption errors to the health system Darrick J. Wong
2024-12-13 6:54 ` Christoph Hellwig
2024-12-13 1:05 ` [PATCH 20/37] xfs: allow queued realtime intents to drain before scrubbing Darrick J. Wong
2024-12-13 7:14 ` Christoph Hellwig
2024-12-13 1:06 ` [PATCH 21/37] xfs: scrub the realtime rmapbt Darrick J. Wong
2024-12-13 7:15 ` Christoph Hellwig
2024-12-13 1:06 ` [PATCH 22/37] xfs: cross-reference realtime bitmap to realtime rmapbt scrubber Darrick J. Wong
2024-12-13 7:15 ` Christoph Hellwig
2024-12-13 1:06 ` [PATCH 23/37] xfs: cross-reference the realtime rmapbt Darrick J. Wong
2024-12-13 7:16 ` Christoph Hellwig
2024-12-13 1:06 ` [PATCH 24/37] xfs: scan rt rmap when we're doing an intense rmap check of bmbt mappings Darrick J. Wong
2024-12-13 7:17 ` Christoph Hellwig
2024-12-13 1:07 ` [PATCH 25/37] xfs: scrub the metadir path of rt rmap btree files Darrick J. Wong
2024-12-13 7:17 ` Christoph Hellwig
2024-12-13 1:07 ` [PATCH 26/37] xfs: walk the rt reverse mapping tree when rebuilding rmap Darrick J. Wong
2024-12-13 7:18 ` Christoph Hellwig
2024-12-13 1:07 ` [PATCH 27/37] xfs: online repair of realtime file bmaps Darrick J. Wong
2024-12-13 7:19 ` Christoph Hellwig
2024-12-17 20:25 ` Darrick J. Wong
2024-12-18 6:54 ` Christoph Hellwig
2024-12-13 1:07 ` [PATCH 28/37] xfs: repair inodes that have realtime extents Darrick J. Wong
2024-12-13 7:19 ` Christoph Hellwig
2024-12-13 1:08 ` [PATCH 29/37] xfs: repair rmap btree inodes Darrick J. Wong
2024-12-13 7:19 ` Christoph Hellwig
2024-12-13 1:08 ` [PATCH 30/37] xfs: online repair of realtime bitmaps for a realtime group Darrick J. Wong
2024-12-13 7:20 ` Christoph Hellwig
2024-12-13 1:08 ` [PATCH 31/37] xfs: support repairing metadata btrees rooted in metadir inodes Darrick J. Wong
2024-12-13 7:23 ` Christoph Hellwig
2024-12-13 1:08 ` [PATCH 32/37] xfs: online repair of the realtime rmap btree Darrick J. Wong
2024-12-13 7:29 ` Christoph Hellwig
2024-12-17 20:41 ` Darrick J. Wong
2024-12-18 6:55 ` Christoph Hellwig [this message]
2024-12-13 1:09 ` [PATCH 33/37] xfs: create a shadow rmap btree during realtime rmap repair Darrick J. Wong
2024-12-13 7:29 ` Christoph Hellwig
2024-12-13 1:09 ` [PATCH 34/37] xfs: hook live realtime rmap operations during a repair operation Darrick J. Wong
2024-12-13 7:34 ` Christoph Hellwig
2024-12-13 1:09 ` [PATCH 35/37] xfs: clean up device translation in xfs_dax_notify_failure Darrick J. Wong
2024-12-13 1:09 ` [PATCH 36/37] xfs: react to fsdax failure notifications on the rt device Darrick J. Wong
2024-12-13 8:29 ` Christoph Hellwig
2024-12-13 1:10 ` [PATCH 37/37] xfs: enable realtime rmap btree Darrick J. Wong
2024-12-13 0:57 ` [PATCHSET v6.0 4/5] xfs: reflink on the realtime device Darrick J. Wong
2024-12-13 1:10 ` [PATCH 01/43] xfs: prepare refcount btree cursor tracepoints for realtime Darrick J. Wong
2024-12-13 9:06 ` Christoph Hellwig
2024-12-13 1:10 ` [PATCH 02/43] xfs: namespace the maximum length/refcount symbols Darrick J. Wong
2024-12-13 9:06 ` Christoph Hellwig
2024-12-13 1:11 ` [PATCH 03/43] xfs: introduce realtime refcount btree ondisk definitions Darrick J. Wong
2024-12-13 9:08 ` Christoph Hellwig
2024-12-17 20:44 ` Darrick J. Wong
2024-12-13 1:11 ` [PATCH 04/43] xfs: realtime refcount btree transaction reservations Darrick J. Wong
2024-12-13 9:08 ` Christoph Hellwig
2024-12-13 1:11 ` [PATCH 05/43] xfs: add realtime refcount btree operations Darrick J. Wong
2024-12-13 9:09 ` Christoph Hellwig
2024-12-13 1:11 ` [PATCH 06/43] xfs: prepare refcount functions to deal with rtrefcountbt Darrick J. Wong
2024-12-13 9:09 ` Christoph Hellwig
2024-12-13 1:12 ` [PATCH 07/43] xfs: add a realtime flag to the refcount update log redo items Darrick J. Wong
2024-12-13 9:10 ` Christoph Hellwig
2024-12-13 1:12 ` [PATCH 08/43] xfs: support recovering refcount intent items targetting realtime extents Darrick J. Wong
2024-12-13 9:10 ` Christoph Hellwig
2024-12-13 1:12 ` [PATCH 09/43] xfs: add realtime refcount btree block detection to log recovery Darrick J. Wong
2024-12-13 9:10 ` Christoph Hellwig
2024-12-13 1:12 ` [PATCH 10/43] xfs: add realtime refcount btree inode to metadata directory Darrick J. Wong
2024-12-13 9:10 ` Christoph Hellwig
2024-12-13 1:13 ` [PATCH 11/43] xfs: add metadata reservations for realtime refcount btree Darrick J. Wong
2024-12-13 9:11 ` Christoph Hellwig
2024-12-13 1:13 ` [PATCH 12/43] xfs: wire up a new metafile type for the realtime refcount Darrick J. Wong
2024-12-13 9:11 ` Christoph Hellwig
2024-12-13 1:13 ` [PATCH 13/43] xfs: refactor xfs_reflink_find_shared Darrick J. Wong
2024-12-13 1:13 ` [PATCH 14/43] xfs: wire up realtime refcount btree cursors Darrick J. Wong
2024-12-13 9:12 ` Christoph Hellwig
2024-12-13 9:12 ` Christoph Hellwig
2024-12-13 1:14 ` [PATCH 15/43] xfs: create routine to allocate and initialize a realtime refcount btree inode Darrick J. Wong
2024-12-13 9:12 ` Christoph Hellwig
2024-12-13 1:14 ` [PATCH 16/43] xfs: update rmap to allow cow staging extents in the rt rmap Darrick J. Wong
2024-12-13 9:13 ` Christoph Hellwig
2024-12-13 1:14 ` [PATCH 17/43] xfs: compute rtrmap btree max levels when reflink enabled Darrick J. Wong
2024-12-13 9:13 ` Christoph Hellwig
2024-12-13 1:14 ` [PATCH 18/43] xfs: refactor reflink quota updates Darrick J. Wong
2024-12-13 9:13 ` Christoph Hellwig
2024-12-13 1:15 ` [PATCH 19/43] xfs: enable CoW for realtime data Darrick J. Wong
2024-12-13 9:14 ` Christoph Hellwig
2024-12-13 1:15 ` [PATCH 20/43] xfs: enable sharing of realtime file blocks Darrick J. Wong
2024-12-13 9:14 ` Christoph Hellwig
2024-12-13 1:15 ` [PATCH 21/43] xfs: allow inodes to have the realtime and reflink flags Darrick J. Wong
2024-12-13 9:15 ` Christoph Hellwig
2024-12-13 1:15 ` [PATCH 22/43] xfs: recover CoW leftovers in the realtime volume Darrick J. Wong
2024-12-13 9:15 ` Christoph Hellwig
2024-12-13 1:16 ` [PATCH 23/43] xfs: fix xfs_get_extsz_hint behavior with realtime alwayscow files Darrick J. Wong
2024-12-13 9:16 ` Christoph Hellwig
2024-12-13 1:16 ` [PATCH 24/43] xfs: apply rt extent alignment constraints to CoW extsize hint Darrick J. Wong
2024-12-13 9:16 ` Christoph Hellwig
2024-12-13 1:16 ` [PATCH 25/43] xfs: enable extent size hints for CoW operations Darrick J. Wong
2024-12-13 9:17 ` Christoph Hellwig
2024-12-13 1:17 ` [PATCH 26/43] xfs: check that the rtrefcount maxlevels doesn't increase when growing fs Darrick J. Wong
2024-12-13 9:17 ` Christoph Hellwig
2024-12-13 1:17 ` [PATCH 27/43] xfs: report realtime refcount btree corruption errors to the health system Darrick J. Wong
2024-12-13 9:17 ` Christoph Hellwig
2024-12-13 1:17 ` [PATCH 28/43] xfs: scrub the realtime refcount btree Darrick J. Wong
2024-12-13 9:18 ` Christoph Hellwig
2024-12-17 20:55 ` Darrick J. Wong
2024-12-18 6:55 ` Christoph Hellwig
2024-12-13 1:17 ` [PATCH 29/43] xfs: cross-reference checks with the rt " Darrick J. Wong
2024-12-13 9:18 ` Christoph Hellwig
2024-12-13 1:18 ` [PATCH 30/43] xfs: allow overlapping rtrmapbt records for shared data extents Darrick J. Wong
2024-12-13 9:19 ` Christoph Hellwig
2024-12-13 1:18 ` [PATCH 31/43] xfs: check reference counts of gaps between rt refcount records Darrick J. Wong
2024-12-13 9:19 ` Christoph Hellwig
2024-12-13 1:18 ` [PATCH 32/43] xfs: allow dquot rt block count to exceed rt blocks on reflink fs Darrick J. Wong
2024-12-13 9:19 ` Christoph Hellwig
2024-12-13 1:18 ` [PATCH 33/43] xfs: detect and repair misaligned rtinherit directory cowextsize hints Darrick J. Wong
2024-12-13 9:20 ` Christoph Hellwig
2024-12-13 1:19 ` [PATCH 34/43] xfs: scrub the metadir path of rt refcount btree files Darrick J. Wong
2024-12-13 9:20 ` Christoph Hellwig
2024-12-13 1:19 ` [PATCH 35/43] xfs: don't flag quota rt block usage on rtreflink filesystems Darrick J. Wong
2024-12-13 9:20 ` Christoph Hellwig
2024-12-13 1:19 ` [PATCH 36/43] xfs: check new rtbitmap records against rt refcount btree Darrick J. Wong
2024-12-13 9:21 ` Christoph Hellwig
2024-12-13 1:19 ` [PATCH 37/43] xfs: walk the rt reference count tree when rebuilding rmap Darrick J. Wong
2024-12-13 1:20 ` [PATCH 38/43] xfs: capture realtime CoW staging extents when rebuilding rt rmapbt Darrick J. Wong
2024-12-13 9:21 ` Christoph Hellwig
2024-12-13 1:20 ` [PATCH 39/43] xfs: online repair of the realtime refcount btree Darrick J. Wong
2024-12-13 9:22 ` Christoph Hellwig
2024-12-13 1:20 ` [PATCH 40/43] xfs: repair inodes that have a refcount btree in the data fork Darrick J. Wong
2024-12-13 9:22 ` Christoph Hellwig
2024-12-13 1:20 ` [PATCH 41/43] xfs: check for shared rt extents when rebuilding rt file's " Darrick J. Wong
2024-12-13 9:23 ` Christoph Hellwig
2024-12-13 1:21 ` [PATCH 42/43] xfs: fix CoW forks for realtime files Darrick J. Wong
2024-12-13 9:24 ` Christoph Hellwig
2024-12-13 1:21 ` [PATCH 43/43] xfs: enable realtime reflink Darrick J. Wong
2024-12-13 9:25 ` Christoph Hellwig
2024-12-17 20:57 ` Darrick J. Wong
2024-12-13 0:57 ` [PATCHSET v6.0 5/5] xfs: reflink with large realtime extents Darrick J. Wong
2024-12-13 1:21 ` [PATCH 01/11] vfs: explicitly pass the block size to the remap prep function Darrick J. Wong
2024-12-13 1:21 ` [PATCH 02/11] iomap: allow zeroing of written extents beyond EOF Darrick J. Wong
2024-12-13 1:22 ` [PATCH 03/11] xfs: convert partially written rt file extents to completely written Darrick J. Wong
2024-12-13 1:22 ` [PATCH 04/11] xfs: enable CoW when rt extent size is larger than 1 block Darrick J. Wong
2024-12-13 1:22 ` [PATCH 05/11] xfs: forcibly convert unwritten blocks within an rt extent before sharing Darrick J. Wong
2024-12-13 1:23 ` [PATCH 06/11] xfs: add some tracepoints for writeback Darrick J. Wong
2024-12-13 1:23 ` [PATCH 07/11] xfs: extend writeback requests to handle rt cow correctly Darrick J. Wong
2024-12-13 1:23 ` [PATCH 08/11] xfs: enable extent size hints for CoW when rtextsize > 1 Darrick J. Wong
2024-12-13 1:23 ` [PATCH 09/11] xfs: allow reflink on the rt volume when extent size is larger than 1 rt block Darrick J. Wong
2024-12-13 1:24 ` [PATCH 10/11] xfs: fix integer overflow when validating extent size hints Darrick J. Wong
2024-12-13 1:24 ` [PATCH 11/11] xfs: support realtime reflink with an extent size that isn't a power of 2 Darrick J. Wong
2024-12-13 8:30 ` [PATCHSET v6.0 5/5] xfs: reflink with large realtime extents Christoph Hellwig
2024-12-17 21:05 ` Darrick J. Wong
2024-12-19 19:14 ` [PATCHBOMB 6.14 v6.1] xfs: realtime rmap and reflink Darrick J. Wong
-- strict thread matches above, loose matches on Subject: below --
2024-12-19 19:19 [PATCHSET v6.1 4/5] xfs: realtime reverse-mapping support Darrick J. Wong
2024-12-19 19:31 ` [PATCH 32/37] xfs: online repair of the realtime rmap btree Darrick J. Wong
2024-12-20 6:33 ` Christoph Hellwig
2024-12-23 22:53 [PATCHSET v6.2 4/5] xfs: realtime reverse-mapping support Darrick J. Wong
2024-12-23 23:04 ` [PATCH 32/37] xfs: online repair of the realtime rmap btree 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=Z2JxxKSSMS9NH5oR@infradead.org \
--to=hch@infradead.org \
--cc=djwong@kernel.org \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox