summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2020-03-26 08:35:55 +0300
committerTom Rini <trini@konsulko.com>2020-04-17 05:13:50 +0300
commita62db245265bd898feaab3f035c5b5f99bf4ea6c (patch)
treef5128276a54ae84fbdf8294d0be01776c1c7f8cf
parent25babb7c1b52bbe62ff9433c07f9e491b9d1b6af (diff)
downloadu-boot-a62db245265bd898feaab3f035c5b5f99bf4ea6c.tar.xz
fs: btrfs: Reject fs with sector size other than PAGE_SIZE
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@suse.com> Cc: Marek Behun <marek.behun@nic.cz> Reviewed-by: Marek BehĂșn <marek.behun@nic.cz>
-rw-r--r--fs/btrfs/super.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 2dc4a6fcd7..b693a073fc 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__,