aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJin Qian <jinqian@google.com>2017-04-24 18:20:52 -0700
committerAmit Pundir <amit.pundir@linaro.org>2017-05-01 15:29:45 +0530
commitd69a900de346b6da958ceb3711d3becd55a7ae71 (patch)
tree76056eab4c93d9e51798f9b59ba539900a94ea4e
parent71e5025eb878c1d74ced556ff825b50b9fcd4820 (diff)
BACKPORT: f2fs: sanity check log_blocks_per_seg
f2fs currently only supports 4KB block size and 2MB segment size. Sanity check log_blocks_per_seg == 9, i.e. 2MB/4KB = (1 << 9) Partially (cherry-picked from commit 9a59b62fd88196844cee5fff851bee2cfd7afb6e) f2fs: do more integrity verification for superblock Do more sanity check for superblock during ->mount. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Bug: 36817013 Change-Id: I0be52e54fba82083068337ceb9f7ad985a87319f Signed-off-by: Jin Qian <jinqian@google.com>
-rw-r--r--fs/f2fs/super.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 3a65e0132352..98a77b0a365d 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -947,6 +947,14 @@ static int sanity_check_raw_super(struct super_block *sb,
return 1;
}
+ /* check log blocks per segment */
+ if (le32_to_cpu(raw_super->log_blocks_per_seg) != 9) {
+ f2fs_msg(sb, KERN_INFO,
+ "Invalid log blocks per segment (%u)\n",
+ le32_to_cpu(raw_super->log_blocks_per_seg));
+ return 1;
+ }
+
/* Currently, support 512/1024/2048/4096 bytes sector size */
if (le32_to_cpu(raw_super->log_sectorsize) >
F2FS_MAX_LOG_SECTOR_SIZE ||