From: Greg Kroah-Hartman Date: Thu, 11 May 2017 12:34:58 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v4.4.68~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d2ac2b5c260c10c0d0896ad278478f5d581c0ae;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: f2fs-sanity-check-segment-count.patch --- diff --git a/queue-4.4/f2fs-sanity-check-segment-count.patch b/queue-4.4/f2fs-sanity-check-segment-count.patch new file mode 100644 index 00000000000..8b425147ee3 --- /dev/null +++ b/queue-4.4/f2fs-sanity-check-segment-count.patch @@ -0,0 +1,52 @@ +From b9dd46188edc2f0d1f37328637860bb65a771124 Mon Sep 17 00:00:00 2001 +From: Jin Qian +Date: Tue, 25 Apr 2017 16:28:48 -0700 +Subject: f2fs: sanity check segment count + +From: Jin Qian + +commit b9dd46188edc2f0d1f37328637860bb65a771124 upstream. + +F2FS uses 4 bytes to represent block address. As a result, supported +size of disk is 16 TB and it equals to 16 * 1024 * 1024 / 2 segments. + +Signed-off-by: Jin Qian +Signed-off-by: Jaegeuk Kim +Signed-off-by: Greg Kroah-Hartman + +--- + fs/f2fs/super.c | 7 +++++++ + include/linux/f2fs_fs.h | 6 ++++++ + 2 files changed, 13 insertions(+) + +--- a/fs/f2fs/super.c ++++ b/fs/f2fs/super.c +@@ -1059,6 +1059,13 @@ static int sanity_check_raw_super(struct + return 1; + } + ++ if (le32_to_cpu(raw_super->segment_count) > F2FS_MAX_SEGMENT) { ++ f2fs_msg(sb, KERN_INFO, ++ "Invalid segment count (%u)", ++ le32_to_cpu(raw_super->segment_count)); ++ return 1; ++ } ++ + /* check CP/SIT/NAT/SSA/MAIN_AREA area boundary */ + if (sanity_check_area_boundary(sb, raw_super)) + return 1; +--- a/include/linux/f2fs_fs.h ++++ b/include/linux/f2fs_fs.h +@@ -284,6 +284,12 @@ struct f2fs_nat_block { + #define SIT_ENTRY_PER_BLOCK (PAGE_CACHE_SIZE / sizeof(struct f2fs_sit_entry)) + + /* ++ * F2FS uses 4 bytes to represent block address. As a result, supported size of ++ * disk is 16 TB and it equals to 16 * 1024 * 1024 / 2 segments. ++ */ ++#define F2FS_MAX_SEGMENT ((16 * 1024 * 1024) / 2) ++ ++/* + * Note that f2fs_sit_entry->vblocks has the following bit-field information. + * [15:10] : allocation type such as CURSEG_XXXX_TYPE + * [9:0] : valid block count diff --git a/queue-4.4/series b/queue-4.4/series index b1036ee7712..4de1979c9c7 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -55,3 +55,4 @@ rtnetlink-nul-terminate-ifla_phys_port_name-string.patch ipv6-initialize-route-null-entry-in-addrconf_init.patch ipv6-reorder-ip6_route_dev_notifier-after-ipv6_dev_notf.patch bnxt_en-allocate-enough-space-for-ntp_fltr_bmap.patch +f2fs-sanity-check-segment-count.patch