* zoned growfs fix
@ 2026-06-09 7:56 Christoph Hellwig
2026-06-09 7:56 ` [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper Christoph Hellwig
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Christoph Hellwig @ 2026-06-09 7:56 UTC (permalink / raw)
To: Carlos Maiolino; +Cc: Damien Le Moal, Hans Holmberg, linux-xfs
Hi all,
this series fixes growfs on zoned file systems, which so far has been
completely broken. A test to verify it properly will be sent out as
well.
Diffstat:
xfs_rtalloc.c | 9 +++++----
xfs_zone_alloc.c | 11 +++++++++--
xfs_zone_alloc.h | 1 +
xfs_zone_gc.c | 4 +---
4 files changed, 16 insertions(+), 9 deletions(-)
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper 2026-06-09 7:56 zoned growfs fix Christoph Hellwig @ 2026-06-09 7:56 ` Christoph Hellwig 2026-06-09 14:56 ` Darrick J. Wong 2026-06-09 23:17 ` Damien Le Moal 2026-06-09 7:56 ` [PATCH 2/3] xfs: account newly added RTGs as free zones in growfs Christoph Hellwig 2026-06-09 7:56 ` [PATCH 3/3] xfs: only log freed extents for the current RTG in zoned growfs Christoph Hellwig 2 siblings, 2 replies; 10+ messages in thread From: Christoph Hellwig @ 2026-06-09 7:56 UTC (permalink / raw) To: Carlos Maiolino; +Cc: Damien Le Moal, Hans Holmberg, linux-xfs Add a helper for adding a zone to the free pool in preparation of adding another caller. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/xfs/xfs_zone_alloc.c | 11 +++++++++-- fs/xfs/xfs_zone_alloc.h | 1 + fs/xfs/xfs_zone_gc.c | 4 +--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c index 5e297b75a85f..0a7c4863eefb 100644 --- a/fs/xfs/xfs_zone_alloc.c +++ b/fs/xfs/xfs_zone_alloc.c @@ -944,6 +944,14 @@ xfs_zone_rgbno_is_valid( rtg_rgno(rtg), XFS_RTG_FREE); } +void +xfs_add_free_zone( + struct xfs_rtgroup *rtg) +{ + xfs_group_set_mark(rtg_group(rtg), XFS_RTG_FREE); + atomic_inc(&rtg_mount(rtg)->m_zone_info->zi_nr_free_zones); +} + static void xfs_free_open_zones( struct xfs_zone_info *zi) @@ -1082,8 +1090,7 @@ xfs_init_zone( if (write_pointer == 0) { /* zone is empty */ - atomic_inc(&zi->zi_nr_free_zones); - xfs_group_set_mark(rtg_group(rtg), XFS_RTG_FREE); + xfs_add_free_zone(rtg); iz->available += rtg_blocks(rtg); } else if (write_pointer < rtg_blocks(rtg)) { /* zone is open */ diff --git a/fs/xfs/xfs_zone_alloc.h b/fs/xfs/xfs_zone_alloc.h index 8b2ef98c81ef..cc16cc328763 100644 --- a/fs/xfs/xfs_zone_alloc.h +++ b/fs/xfs/xfs_zone_alloc.h @@ -42,6 +42,7 @@ void xfs_zoned_wake_all(struct xfs_mount *mp); bool xfs_zone_rgbno_is_valid(struct xfs_rtgroup *rtg, xfs_rgnumber_t rgbno); void xfs_mark_rtg_boundary(struct iomap_ioend *ioend); +void xfs_add_free_zone(struct xfs_rtgroup *rtg); uint64_t xfs_zoned_default_resblks(struct xfs_mount *mp, enum xfs_free_counter ctr); void xfs_zoned_show_stats(struct seq_file *m, struct xfs_mount *mp); diff --git a/fs/xfs/xfs_zone_gc.c b/fs/xfs/xfs_zone_gc.c index f03211e4354a..670e05d2dadd 100644 --- a/fs/xfs/xfs_zone_gc.c +++ b/fs/xfs/xfs_zone_gc.c @@ -924,9 +924,7 @@ xfs_zone_gc_finish_reset( goto out; } - xfs_group_set_mark(rtg_group(rtg), XFS_RTG_FREE); - atomic_inc(&zi->zi_nr_free_zones); - + xfs_add_free_zone(rtg); xfs_zoned_add_available(mp, rtg_blocks(rtg)); wake_up_all(&zi->zi_zone_wait); -- 2.53.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper 2026-06-09 7:56 ` [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper Christoph Hellwig @ 2026-06-09 14:56 ` Darrick J. Wong 2026-06-09 23:17 ` Damien Le Moal 1 sibling, 0 replies; 10+ messages in thread From: Darrick J. Wong @ 2026-06-09 14:56 UTC (permalink / raw) To: Christoph Hellwig Cc: Carlos Maiolino, Damien Le Moal, Hans Holmberg, linux-xfs On Tue, Jun 09, 2026 at 09:56:41AM +0200, Christoph Hellwig wrote: > Add a helper for adding a zone to the free pool in preparation of adding > another caller. > > Signed-off-by: Christoph Hellwig <hch@lst.de> I might've called this xfs_zone_mark_free but I don't care passionately about the name. Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D > --- > fs/xfs/xfs_zone_alloc.c | 11 +++++++++-- > fs/xfs/xfs_zone_alloc.h | 1 + > fs/xfs/xfs_zone_gc.c | 4 +--- > 3 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c > index 5e297b75a85f..0a7c4863eefb 100644 > --- a/fs/xfs/xfs_zone_alloc.c > +++ b/fs/xfs/xfs_zone_alloc.c > @@ -944,6 +944,14 @@ xfs_zone_rgbno_is_valid( > rtg_rgno(rtg), XFS_RTG_FREE); > } > > +void > +xfs_add_free_zone( > + struct xfs_rtgroup *rtg) > +{ > + xfs_group_set_mark(rtg_group(rtg), XFS_RTG_FREE); > + atomic_inc(&rtg_mount(rtg)->m_zone_info->zi_nr_free_zones); > +} > + > static void > xfs_free_open_zones( > struct xfs_zone_info *zi) > @@ -1082,8 +1090,7 @@ xfs_init_zone( > > if (write_pointer == 0) { > /* zone is empty */ > - atomic_inc(&zi->zi_nr_free_zones); > - xfs_group_set_mark(rtg_group(rtg), XFS_RTG_FREE); > + xfs_add_free_zone(rtg); > iz->available += rtg_blocks(rtg); > } else if (write_pointer < rtg_blocks(rtg)) { > /* zone is open */ > diff --git a/fs/xfs/xfs_zone_alloc.h b/fs/xfs/xfs_zone_alloc.h > index 8b2ef98c81ef..cc16cc328763 100644 > --- a/fs/xfs/xfs_zone_alloc.h > +++ b/fs/xfs/xfs_zone_alloc.h > @@ -42,6 +42,7 @@ void xfs_zoned_wake_all(struct xfs_mount *mp); > bool xfs_zone_rgbno_is_valid(struct xfs_rtgroup *rtg, xfs_rgnumber_t rgbno); > void xfs_mark_rtg_boundary(struct iomap_ioend *ioend); > > +void xfs_add_free_zone(struct xfs_rtgroup *rtg); > uint64_t xfs_zoned_default_resblks(struct xfs_mount *mp, > enum xfs_free_counter ctr); > void xfs_zoned_show_stats(struct seq_file *m, struct xfs_mount *mp); > diff --git a/fs/xfs/xfs_zone_gc.c b/fs/xfs/xfs_zone_gc.c > index f03211e4354a..670e05d2dadd 100644 > --- a/fs/xfs/xfs_zone_gc.c > +++ b/fs/xfs/xfs_zone_gc.c > @@ -924,9 +924,7 @@ xfs_zone_gc_finish_reset( > goto out; > } > > - xfs_group_set_mark(rtg_group(rtg), XFS_RTG_FREE); > - atomic_inc(&zi->zi_nr_free_zones); > - > + xfs_add_free_zone(rtg); > xfs_zoned_add_available(mp, rtg_blocks(rtg)); > > wake_up_all(&zi->zi_zone_wait); > -- > 2.53.0 > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper 2026-06-09 7:56 ` [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper Christoph Hellwig 2026-06-09 14:56 ` Darrick J. Wong @ 2026-06-09 23:17 ` Damien Le Moal 1 sibling, 0 replies; 10+ messages in thread From: Damien Le Moal @ 2026-06-09 23:17 UTC (permalink / raw) To: Christoph Hellwig, Carlos Maiolino; +Cc: Hans Holmberg, linux-xfs On 2026/06/09 15:56, Christoph Hellwig wrote: > Add a helper for adding a zone to the free pool in preparation of adding > another caller. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Same comment as Darrick: to match xfs_group_set_mark(), xfs_mark_zone_free() or xfs_zone_mark_free() may be a better name. Other than that, Reviewed-by: Damien Le Moal <dlemoal@kernel.org> -- Damien Le Moal Western Digital Research ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/3] xfs: account newly added RTGs as free zones in growfs 2026-06-09 7:56 zoned growfs fix Christoph Hellwig 2026-06-09 7:56 ` [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper Christoph Hellwig @ 2026-06-09 7:56 ` Christoph Hellwig 2026-06-09 14:54 ` Darrick J. Wong 2026-06-09 23:18 ` Damien Le Moal 2026-06-09 7:56 ` [PATCH 3/3] xfs: only log freed extents for the current RTG in zoned growfs Christoph Hellwig 2 siblings, 2 replies; 10+ messages in thread From: Christoph Hellwig @ 2026-06-09 7:56 UTC (permalink / raw) To: Carlos Maiolino; +Cc: Damien Le Moal, Hans Holmberg, linux-xfs When growing a zoned RT section, the newly added RTGs also need to be tagged as free in the radix tree and add to the nr_free_zones counters. Call xfs_add_free_zone to do that, otherwise using up the newly added space will wait for free zones forever. Fixes: 01b71e64bb87 ("xfs: support growfs on zoned file systems") Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/xfs/xfs_rtalloc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 153f3c378f9f..fd07c1a18615 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -933,6 +933,7 @@ xfs_growfs_rt_zoned( mp->m_features |= XFS_FEAT_REALTIME; xfs_rtrmapbt_compute_maxlevels(mp); xfs_rtrefcountbt_compute_maxlevels(mp); + xfs_add_free_zone(rtg); xfs_zoned_add_available(mp, freed_rtx); out_free: kfree(nmp); -- 2.53.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] xfs: account newly added RTGs as free zones in growfs 2026-06-09 7:56 ` [PATCH 2/3] xfs: account newly added RTGs as free zones in growfs Christoph Hellwig @ 2026-06-09 14:54 ` Darrick J. Wong 2026-06-09 23:18 ` Damien Le Moal 1 sibling, 0 replies; 10+ messages in thread From: Darrick J. Wong @ 2026-06-09 14:54 UTC (permalink / raw) To: Christoph Hellwig Cc: Carlos Maiolino, Damien Le Moal, Hans Holmberg, linux-xfs On Tue, Jun 09, 2026 at 09:56:42AM +0200, Christoph Hellwig wrote: > When growing a zoned RT section, the newly added RTGs also need to be > tagged as free in the radix tree and add to the nr_free_zones counters. > Call xfs_add_free_zone to do that, otherwise using up the newly added > space will wait for free zones forever. > > Fixes: 01b71e64bb87 ("xfs: support growfs on zoned file systems") > Signed-off-by: Christoph Hellwig <hch@lst.de> Good catch; glad there's a new fstest for it. Cc: <stable@vger.kernel.org> # v6.15 Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D > --- > fs/xfs/xfs_rtalloc.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c > index 153f3c378f9f..fd07c1a18615 100644 > --- a/fs/xfs/xfs_rtalloc.c > +++ b/fs/xfs/xfs_rtalloc.c > @@ -933,6 +933,7 @@ xfs_growfs_rt_zoned( > mp->m_features |= XFS_FEAT_REALTIME; > xfs_rtrmapbt_compute_maxlevels(mp); > xfs_rtrefcountbt_compute_maxlevels(mp); > + xfs_add_free_zone(rtg); > xfs_zoned_add_available(mp, freed_rtx); > out_free: > kfree(nmp); > -- > 2.53.0 > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/3] xfs: account newly added RTGs as free zones in growfs 2026-06-09 7:56 ` [PATCH 2/3] xfs: account newly added RTGs as free zones in growfs Christoph Hellwig 2026-06-09 14:54 ` Darrick J. Wong @ 2026-06-09 23:18 ` Damien Le Moal 1 sibling, 0 replies; 10+ messages in thread From: Damien Le Moal @ 2026-06-09 23:18 UTC (permalink / raw) To: Christoph Hellwig, Carlos Maiolino; +Cc: Hans Holmberg, linux-xfs On 2026/06/09 15:56, Christoph Hellwig wrote: > When growing a zoned RT section, the newly added RTGs also need to be > tagged as free in the radix tree and add to the nr_free_zones counters. > Call xfs_add_free_zone to do that, otherwise using up the newly added > space will wait for free zones forever. > > Fixes: 01b71e64bb87 ("xfs: support growfs on zoned file systems") > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> -- Damien Le Moal Western Digital Research ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/3] xfs: only log freed extents for the current RTG in zoned growfs 2026-06-09 7:56 zoned growfs fix Christoph Hellwig 2026-06-09 7:56 ` [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper Christoph Hellwig 2026-06-09 7:56 ` [PATCH 2/3] xfs: account newly added RTGs as free zones in growfs Christoph Hellwig @ 2026-06-09 7:56 ` Christoph Hellwig 2026-06-09 14:54 ` Darrick J. Wong 2026-06-09 23:20 ` Damien Le Moal 2 siblings, 2 replies; 10+ messages in thread From: Christoph Hellwig @ 2026-06-09 7:56 UTC (permalink / raw) To: Carlos Maiolino; +Cc: Damien Le Moal, Hans Holmberg, linux-xfs Otherwise a power fail or crash during growfs could lead to an elevated sb_rblocks counter. Note that the step function is much simpler compared to the classic RT allocator, as zoned RT sections must be allocated to zone and thus realtime group boundaries, and also because the rtextsize is fixed to a single FSB. Fixes: 01b71e64bb87 ("xfs: support growfs on zoned file systems") Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/xfs/xfs_rtalloc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index fd07c1a18615..728f444fbc30 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -890,8 +890,7 @@ xfs_growfs_rt_sb_fields( static int xfs_growfs_rt_zoned( - struct xfs_rtgroup *rtg, - xfs_rfsblock_t nrblocks) + struct xfs_rtgroup *rtg) { struct xfs_mount *mp = rtg_mount(rtg); struct xfs_mount *nmp; @@ -903,7 +902,8 @@ xfs_growfs_rt_zoned( * Calculate new sb and mount fields for this round. Also ensure the * rtg_extents value is uptodate as the rtbitmap code relies on it. */ - nmp = xfs_growfs_rt_alloc_fake_mount(mp, nrblocks, + nmp = xfs_growfs_rt_alloc_fake_mount(mp, + mp->m_sb.sb_rgextents * (rtg_rgno(rtg) + 1), mp->m_sb.sb_rextsize); if (!nmp) return -ENOMEM; @@ -1219,7 +1219,7 @@ xfs_growfs_rtg( } if (xfs_has_zoned(mp)) { - error = xfs_growfs_rt_zoned(rtg, nrblocks); + error = xfs_growfs_rt_zoned(rtg); goto out_rele; } -- 2.53.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 3/3] xfs: only log freed extents for the current RTG in zoned growfs 2026-06-09 7:56 ` [PATCH 3/3] xfs: only log freed extents for the current RTG in zoned growfs Christoph Hellwig @ 2026-06-09 14:54 ` Darrick J. Wong 2026-06-09 23:20 ` Damien Le Moal 1 sibling, 0 replies; 10+ messages in thread From: Darrick J. Wong @ 2026-06-09 14:54 UTC (permalink / raw) To: Christoph Hellwig Cc: Carlos Maiolino, Damien Le Moal, Hans Holmberg, linux-xfs On Tue, Jun 09, 2026 at 09:56:43AM +0200, Christoph Hellwig wrote: > Otherwise a power fail or crash during growfs could lead to an > elevated sb_rblocks counter. > > Note that the step function is much simpler compared to the classic RT > allocator, as zoned RT sections must be allocated to zone and thus > realtime group boundaries, and also because the rtextsize is fixed to a > single FSB. > > Fixes: 01b71e64bb87 ("xfs: support growfs on zoned file systems") > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > fs/xfs/xfs_rtalloc.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c > index fd07c1a18615..728f444fbc30 100644 > --- a/fs/xfs/xfs_rtalloc.c > +++ b/fs/xfs/xfs_rtalloc.c > @@ -890,8 +890,7 @@ xfs_growfs_rt_sb_fields( > > static int > xfs_growfs_rt_zoned( > - struct xfs_rtgroup *rtg, > - xfs_rfsblock_t nrblocks) > + struct xfs_rtgroup *rtg) > { > struct xfs_mount *mp = rtg_mount(rtg); > struct xfs_mount *nmp; > @@ -903,7 +902,8 @@ xfs_growfs_rt_zoned( > * Calculate new sb and mount fields for this round. Also ensure the > * rtg_extents value is uptodate as the rtbitmap code relies on it. > */ > - nmp = xfs_growfs_rt_alloc_fake_mount(mp, nrblocks, > + nmp = xfs_growfs_rt_alloc_fake_mount(mp, > + mp->m_sb.sb_rgextents * (rtg_rgno(rtg) + 1), I wonder, do you have to be careful about the multiplication overflowing here because rgextents and rgno are both 32-bit variables? --D > mp->m_sb.sb_rextsize); > if (!nmp) > return -ENOMEM; > @@ -1219,7 +1219,7 @@ xfs_growfs_rtg( > } > > if (xfs_has_zoned(mp)) { > - error = xfs_growfs_rt_zoned(rtg, nrblocks); > + error = xfs_growfs_rt_zoned(rtg); > goto out_rele; > } > > -- > 2.53.0 > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/3] xfs: only log freed extents for the current RTG in zoned growfs 2026-06-09 7:56 ` [PATCH 3/3] xfs: only log freed extents for the current RTG in zoned growfs Christoph Hellwig 2026-06-09 14:54 ` Darrick J. Wong @ 2026-06-09 23:20 ` Damien Le Moal 1 sibling, 0 replies; 10+ messages in thread From: Damien Le Moal @ 2026-06-09 23:20 UTC (permalink / raw) To: Christoph Hellwig, Carlos Maiolino; +Cc: Hans Holmberg, linux-xfs On 2026/06/09 15:56, Christoph Hellwig wrote: > Otherwise a power fail or crash during growfs could lead to an > elevated sb_rblocks counter. > > Note that the step function is much simpler compared to the classic RT > allocator, as zoned RT sections must be allocated to zone and thus s/zone/zones > realtime group boundaries, and also because the rtextsize is fixed to a > single FSB. > > Fixes: 01b71e64bb87 ("xfs: support growfs on zoned file systems") > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > fs/xfs/xfs_rtalloc.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c > index fd07c1a18615..728f444fbc30 100644 > --- a/fs/xfs/xfs_rtalloc.c > +++ b/fs/xfs/xfs_rtalloc.c > @@ -890,8 +890,7 @@ xfs_growfs_rt_sb_fields( > > static int > xfs_growfs_rt_zoned( > - struct xfs_rtgroup *rtg, > - xfs_rfsblock_t nrblocks) > + struct xfs_rtgroup *rtg) > { > struct xfs_mount *mp = rtg_mount(rtg); > struct xfs_mount *nmp; > @@ -903,7 +902,8 @@ xfs_growfs_rt_zoned( > * Calculate new sb and mount fields for this round. Also ensure the > * rtg_extents value is uptodate as the rtbitmap code relies on it. > */ > - nmp = xfs_growfs_rt_alloc_fake_mount(mp, nrblocks, > + nmp = xfs_growfs_rt_alloc_fake_mount(mp, > + mp->m_sb.sb_rgextents * (rtg_rgno(rtg) + 1), > mp->m_sb.sb_rextsize); > if (!nmp) > return -ENOMEM; > @@ -1219,7 +1219,7 @@ xfs_growfs_rtg( > } > > if (xfs_has_zoned(mp)) { > - error = xfs_growfs_rt_zoned(rtg, nrblocks); > + error = xfs_growfs_rt_zoned(rtg); > goto out_rele; > } > -- Damien Le Moal Western Digital Research ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-06-09 23:20 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-06-09 7:56 zoned growfs fix Christoph Hellwig 2026-06-09 7:56 ` [PATCH 1/3] xfs: factor out a xfs_add_free_zone helper Christoph Hellwig 2026-06-09 14:56 ` Darrick J. Wong 2026-06-09 23:17 ` Damien Le Moal 2026-06-09 7:56 ` [PATCH 2/3] xfs: account newly added RTGs as free zones in growfs Christoph Hellwig 2026-06-09 14:54 ` Darrick J. Wong 2026-06-09 23:18 ` Damien Le Moal 2026-06-09 7:56 ` [PATCH 3/3] xfs: only log freed extents for the current RTG in zoned growfs Christoph Hellwig 2026-06-09 14:54 ` Darrick J. Wong 2026-06-09 23:20 ` Damien Le Moal
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox