]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2012 23:56:55 +0000 (15:56 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2012 23:56:55 +0000 (15:56 -0800)
added patches:
xfs-fix-reading-of-wrapped-log-data.patch

queue-3.4/series
queue-3.4/xfs-fix-reading-of-wrapped-log-data.patch [new file with mode: 0644]

index 72afd0c98336619da94cf79db8e2767c5a0358b6..a0bbf31c57a9d6260222b7fc2430f657ec56cf29 100644 (file)
@@ -55,3 +55,4 @@ drm-radeon-si-add-some-missing-regs-to-the-vm-reg-checker.patch
 drm-i915-fixup-infoframe-support-for-sdvo.patch
 drm-i915-clear-the-entire-sdvo-infoframe-buffer.patch
 usb-mos7840-remove-unused-variable.patch
+xfs-fix-reading-of-wrapped-log-data.patch
diff --git a/queue-3.4/xfs-fix-reading-of-wrapped-log-data.patch b/queue-3.4/xfs-fix-reading-of-wrapped-log-data.patch
new file mode 100644 (file)
index 0000000..8fcab41
--- /dev/null
@@ -0,0 +1,39 @@
+From 6ce377afd1755eae5c93410ca9a1121dfead7b87 Mon Sep 17 00:00:00 2001
+From: Dave Chinner <dchinner@redhat.com>
+Date: Fri, 2 Nov 2012 11:38:44 +1100
+Subject: xfs: fix reading of wrapped log data
+
+From: Dave Chinner <dchinner@redhat.com>
+
+commit 6ce377afd1755eae5c93410ca9a1121dfead7b87 upstream.
+
+Commit 4439647 ("xfs: reset buffer pointers before freeing them") in
+3.0-rc1 introduced a regression when recovering log buffers that
+wrapped around the end of log. The second part of the log buffer at
+the start of the physical log was being read into the header buffer
+rather than the data buffer, and hence recovery was seeing garbage
+in the data buffer when it got to the region of the log buffer that
+was incorrectly read.
+
+Reported-by: Torsten Kaiser <just.for.lkml@googlemail.com>
+Signed-off-by: Dave Chinner <dchinner@redhat.com>
+Reviewed-by: Christoph Hellwig <hch@lst.de>
+Reviewed-by: Mark Tinguely <tinguely@sgi.com>
+Signed-off-by: Ben Myers <bpm@sgi.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/xfs/xfs_log_recover.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/xfs/xfs_log_recover.c
++++ b/fs/xfs/xfs_log_recover.c
+@@ -3514,7 +3514,7 @@ xlog_do_recovery_pass(
+                                *   - order is important.
+                                */
+                               error = xlog_bread_offset(log, 0,
+-                                              bblks - split_bblks, hbp,
++                                              bblks - split_bblks, dbp,
+                                               offset + BBTOB(split_bblks));
+                               if (error)
+                                       goto bread_err2;