[PATCH U-BOOT v2 2/3] fs: btrfs: Reject fs with sector size other than PAGE_SIZE

Marek Behun marek.behun at nic.cz
Thu Mar 26 10:03:12 CET 2020


On Thu, 26 Mar 2020 13:35:55 +0800
Qu Wenruo <wqu at suse.com> wrote:

> Although in theory u-boot fs driver could easily support more sector
> sizes, current code base doesn't have good enough way to grab sector
> size yet.
> 
> This would cause problem for later LZO fixes which rely on sector size.
> 
> And considering that most u-boot boards are using 4K page size, which is
> also the most common sector size for btrfs, rejecting fs with
> non-page-sized sector size shouldn't cause much problem.
> 
> This should only be a quick fix before we implement better sector size
> support.
> 
> Signed-off-by: Qu Wenruo <wqu at suse.com>
> Cc: Marek Behun <marek.behun at nic.cz>
> ---
>  fs/btrfs/super.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
> index 2dc4a6fcd7a3..b693a073fc0b 100644
> --- a/fs/btrfs/super.c
> +++ b/fs/btrfs/super.c
> @@ -7,6 +7,7 @@
>  
>  #include "btrfs.h"
>  #include <memalign.h>
> +#include <linux/compat.h>
>  
>  #define BTRFS_SUPER_FLAG_SUPP	(BTRFS_HEADER_FLAG_WRITTEN	\
>  				 | BTRFS_HEADER_FLAG_RELOC	\
> @@ -232,6 +233,13 @@ int btrfs_read_superblock(void)
>  		return -1;
>  	}
>  
> +	if (sb->sectorsize != PAGE_SIZE) {
> +		printf(
> +	"%s: Unsupported sector size (%u), only supports %u as sector size\n",
> +			__func__, sb->sectorsize, PAGE_SIZE);
> +		return -1;
> +	}
> +
>  	if (btrfs_info.sb.num_devices != 1) {
>  		printf("%s: Unsupported number of devices (%lli). This driver "
>  		       "only supports filesystem on one device.\n", __func__,

Reviewed-by: Marek Behún <marek.behun at nic.cz>


More information about the U-Boot mailing list