]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 16 Sep 2017 01:28:57 +0000 (18:28 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 16 Sep 2017 01:28:57 +0000 (18:28 -0700)
added patches:
f2fs-check-hot_data-for-roll-forward-recovery.patch
f2fs-let-fill_super-handle-roll-forward-errors.patch

queue-4.9/f2fs-check-hot_data-for-roll-forward-recovery.patch [new file with mode: 0644]
queue-4.9/f2fs-let-fill_super-handle-roll-forward-errors.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/f2fs-check-hot_data-for-roll-forward-recovery.patch b/queue-4.9/f2fs-check-hot_data-for-roll-forward-recovery.patch
new file mode 100644 (file)
index 0000000..1111ef0
--- /dev/null
@@ -0,0 +1,31 @@
+From 125c9fb1ccb53eb2ea9380df40f3c743f3fb2fed Mon Sep 17 00:00:00 2001
+From: Jaegeuk Kim <jaegeuk@kernel.org>
+Date: Sat, 12 Aug 2017 21:33:23 -0700
+Subject: f2fs: check hot_data for roll-forward recovery
+
+From: Jaegeuk Kim <jaegeuk@kernel.org>
+
+commit 125c9fb1ccb53eb2ea9380df40f3c743f3fb2fed upstream.
+
+We need to check HOT_DATA to truncate any previous data block when doing
+roll-forward recovery.
+
+Reviewed-by: Chao Yu <yuchao0@huawei.com>
+Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/f2fs/recovery.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/f2fs/recovery.c
++++ b/fs/f2fs/recovery.c
+@@ -316,7 +316,7 @@ static int check_index_in_prev_nodes(str
+               return 0;
+       /* Get the previous summary */
+-      for (i = CURSEG_WARM_DATA; i <= CURSEG_COLD_DATA; i++) {
++      for (i = CURSEG_HOT_DATA; i <= CURSEG_COLD_DATA; i++) {
+               struct curseg_info *curseg = CURSEG_I(sbi, i);
+               if (curseg->segno == segno) {
+                       sum = curseg->sum_blk->entries[blkoff];
diff --git a/queue-4.9/f2fs-let-fill_super-handle-roll-forward-errors.patch b/queue-4.9/f2fs-let-fill_super-handle-roll-forward-errors.patch
new file mode 100644 (file)
index 0000000..b847d7f
--- /dev/null
@@ -0,0 +1,34 @@
+From afd2b4da40b3b567ef8d8e6881479345a2312a03 Mon Sep 17 00:00:00 2001
+From: Jaegeuk Kim <jaegeuk@kernel.org>
+Date: Thu, 10 Aug 2017 17:35:04 -0700
+Subject: f2fs: let fill_super handle roll-forward errors
+
+From: Jaegeuk Kim <jaegeuk@kernel.org>
+
+commit afd2b4da40b3b567ef8d8e6881479345a2312a03 upstream.
+
+If we set CP_ERROR_FLAG in roll-forward error, f2fs is no longer to proceed
+any IOs due to f2fs_cp_error(). But, for example, if some stale data is involved
+on roll-forward process, we're able to get -ENOENT, getting fs stuck.
+If we get any error, let fill_super set SBI_NEED_FSCK and try to recover back
+to stable point.
+
+Reviewed-by: Chao Yu <yuchao0@huawei.com>
+Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/f2fs/recovery.c |    2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/fs/f2fs/recovery.c
++++ b/fs/f2fs/recovery.c
+@@ -626,8 +626,6 @@ out:
+       }
+       clear_sbi_flag(sbi, SBI_POR_DOING);
+-      if (err)
+-              set_ckpt_flags(sbi, CP_ERROR_FLAG);
+       mutex_unlock(&sbi->cp_mutex);
+       /* let's drop all the directory inodes for clean checkpoint */
index 9fd985cc91817239b73327f47dc803e1de31cbed..f5d165b407f6e35c98809432e6e5ccead32552de 100644 (file)
@@ -23,3 +23,5 @@ ipv6-fix-memory-leak-with-multiple-tables-during-netns-destruction.patch
 ipv6-fix-typo-in-fib6_net_exit.patch
 sctp-fix-missing-wake-ups-in-some-situations.patch
 ip_tunnel-fix-setting-ttl-and-tos-value-in-collect_md-mode.patch
+f2fs-let-fill_super-handle-roll-forward-errors.patch
+f2fs-check-hot_data-for-roll-forward-recovery.patch