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

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

index 8bda6d07d581955387d7020600ed6293384cea63..4df6a7a0a799ee26df1bae5ee57167fc16035ef5 100644 (file)
@@ -35,3 +35,4 @@ drm-vmwgfx-fix-hibernation-device-reset.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.0/xfs-fix-reading-of-wrapped-log-data.patch b/queue-3.0/xfs-fix-reading-of-wrapped-log-data.patch
new file mode 100644 (file)
index 0000000..a39c746
--- /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
+@@ -3512,7 +3512,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;