[PATCH] bcachefs: add missing selection of XARRAY_MULTI

Eric Biggers posted 1 patch 10 months, 1 week ago
fs/bcachefs/Kconfig | 1 +
1 file changed, 1 insertion(+)
[PATCH] bcachefs: add missing selection of XARRAY_MULTI
Posted by Eric Biggers 10 months, 1 week ago
From: Eric Biggers <ebiggers@google.com>

When CONFIG_XARRAY_MULTI is not set, reading from a bcachefs file hits
the 'BUG_ON(order > 0);' in xas_set_order(), because it tries to insert
a large folio in the page cache.  Fix this by making bcachefs select
XARRAY_MULTI.

Fixes: be212d86b19c ("bcachefs: bs > ps support")
Signed-off-by: Eric Biggers <ebiggers@google.com>
---

I'm not entirely sure this is the correct fix; if it's not, please treat
this as a bug report...

 fs/bcachefs/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/bcachefs/Kconfig b/fs/bcachefs/Kconfig
index c9798750202d3..bf1c94e51dd06 100644
--- a/fs/bcachefs/Kconfig
+++ b/fs/bcachefs/Kconfig
@@ -24,10 +24,11 @@ config BCACHEFS_FS
 	select XOR_BLOCKS
 	select XXHASH
 	select SRCU
 	select SYMBOLIC_ERRNAME
 	select MIN_HEAP
+	select XARRAY_MULTI
 	help
 	The bcachefs filesystem - a modern, copy on write filesystem, with
 	support for multiple devices, compression, checksumming, etc.
 
 config BCACHEFS_QUOTA

base-commit: 88eeda35f19bab3a247ca25d99bc82ac710bc09f
-- 
2.49.0
Re: [PATCH] bcachefs: add missing selection of XARRAY_MULTI
Posted by Kent Overstreet 10 months, 1 week ago
On Tue, Apr 01, 2025 at 08:26:48PM -0700, Eric Biggers wrote:
> From: Eric Biggers <ebiggers@google.com>
> 
> When CONFIG_XARRAY_MULTI is not set, reading from a bcachefs file hits
> the 'BUG_ON(order > 0);' in xas_set_order(), because it tries to insert
> a large folio in the page cache.  Fix this by making bcachefs select
> XARRAY_MULTI.
> 
> Fixes: be212d86b19c ("bcachefs: bs > ps support")
> Signed-off-by: Eric Biggers <ebiggers@google.com>
> ---
> 
> I'm not entirely sure this is the correct fix; if it's not, please treat
> this as a bug report...

Seems reasonable - if there's a better way to do that, we can do that as
a cleanup later, I'm applying it and queueing it up for the next pull
request.

> 
>  fs/bcachefs/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/bcachefs/Kconfig b/fs/bcachefs/Kconfig
> index c9798750202d3..bf1c94e51dd06 100644
> --- a/fs/bcachefs/Kconfig
> +++ b/fs/bcachefs/Kconfig
> @@ -24,10 +24,11 @@ config BCACHEFS_FS
>  	select XOR_BLOCKS
>  	select XXHASH
>  	select SRCU
>  	select SYMBOLIC_ERRNAME
>  	select MIN_HEAP
> +	select XARRAY_MULTI
>  	help
>  	The bcachefs filesystem - a modern, copy on write filesystem, with
>  	support for multiple devices, compression, checksumming, etc.
>  
>  config BCACHEFS_QUOTA
> 
> base-commit: 88eeda35f19bab3a247ca25d99bc82ac710bc09f
> -- 
> 2.49.0
>