]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 16 Sep 2017 01:28:37 +0000 (18:28 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 16 Sep 2017 01:28:37 +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.12/f2fs-check-hot_data-for-roll-forward-recovery.patch [new file with mode: 0644]
queue-4.12/f2fs-let-fill_super-handle-roll-forward-errors.patch [new file with mode: 0644]
queue-4.12/series

diff --git a/queue-4.12/f2fs-check-hot_data-for-roll-forward-recovery.patch b/queue-4.12/f2fs-check-hot_data-for-roll-forward-recovery.patch
new file mode 100644 (file)
index 0000000..ddedea9
--- /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
+@@ -291,7 +291,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.12/f2fs-let-fill_super-handle-roll-forward-errors.patch b/queue-4.12/f2fs-let-fill_super-handle-roll-forward-errors.patch
new file mode 100644 (file)
index 0000000..5e24613
--- /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
+@@ -599,8 +599,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 cb6188fed7c5b0f83f2b4d42cb715c108964dc81..5264d8690e47512784bda1d9b56373e4fea24a15 100644 (file)
@@ -41,3 +41,5 @@ ip6_gre-update-mtu-properly-in-ip6gre_err.patch
 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
+f2fs-let-fill_super-handle-roll-forward-errors.patch
+f2fs-check-hot_data-for-roll-forward-recovery.patch