]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 May 2017 12:34:58 +0000 (14:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 May 2017 12:34:58 +0000 (14:34 +0200)
added patches:
f2fs-sanity-check-segment-count.patch

queue-4.4/f2fs-sanity-check-segment-count.patch [new file with mode: 0644]
queue-4.4/series

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 (file)
index 0000000..8b42514
--- /dev/null
@@ -0,0 +1,52 @@
+From b9dd46188edc2f0d1f37328637860bb65a771124 Mon Sep 17 00:00:00 2001
+From: Jin Qian <jinqian@google.com>
+Date: Tue, 25 Apr 2017 16:28:48 -0700
+Subject: f2fs: sanity check segment count
+
+From: Jin Qian <jinqian@google.com>
+
+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 <jinqian@google.com>
+Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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
index b1036ee7712f88c9417382fb1a806ce558b6c0b3..4de1979c9c79d8a3e7bd06298c4d8c888327a3ac 100644 (file)
@@ -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