]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.7-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Feb 2013 19:26:06 +0000 (11:26 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Feb 2013 19:26:06 +0000 (11:26 -0800)
added patches:
revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch

queue-3.7/revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch [new file with mode: 0644]
queue-3.7/series [new file with mode: 0644]

diff --git a/queue-3.7/revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch b/queue-3.7/revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch
new file mode 100644 (file)
index 0000000..477b73e
--- /dev/null
@@ -0,0 +1,57 @@
+From foo@baz Thu Feb 14 11:22:53 PST 2013
+Date: Thu, 14 Feb 2013 11:22:53 -0800
+To: Greg KH <gregkh@linuxfoundation.org>
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Subject: Revert: xfs: fix _xfs_buf_find oops on blocks beyond the filesystem end
+
+This reverts commit a56040731e5b00081c6d6c26b99e6e257a5d63d7 which was
+commit eb178619f930fa2ba2348de332a1ff1c66a31424 upstream.
+
+It has been reported to cause problems:
+       http://bugzilla.redhat.com/show_bug.cgi?id=909602
+
+Cc: Dave Chinner <dchinner@redhat.com>
+Cc: Brian Foster <bfoster@redhat.com>
+Cc: Ben Myers <bpm@sgi.com>
+Cc: CAI Qian <caiqian@redhat.com>
+Cc: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/xfs/xfs_buf.c |   18 ------------------
+ 1 file changed, 18 deletions(-)
+
+--- a/fs/xfs/xfs_buf.c
++++ b/fs/xfs/xfs_buf.c
+@@ -487,7 +487,6 @@ _xfs_buf_find(
+       struct rb_node          *parent;
+       xfs_buf_t               *bp;
+       xfs_daddr_t             blkno = map[0].bm_bn;
+-      xfs_daddr_t             eofs;
+       int                     numblks = 0;
+       int                     i;
+@@ -499,23 +498,6 @@ _xfs_buf_find(
+       ASSERT(!(numbytes < (1 << btp->bt_sshift)));
+       ASSERT(!(BBTOB(blkno) & (xfs_off_t)btp->bt_smask));
+-      /*
+-       * Corrupted block numbers can get through to here, unfortunately, so we
+-       * have to check that the buffer falls within the filesystem bounds.
+-       */
+-      eofs = XFS_FSB_TO_BB(btp->bt_mount, btp->bt_mount->m_sb.sb_dblocks);
+-      if (blkno >= eofs) {
+-              /*
+-               * XXX (dgc): we should really be returning EFSCORRUPTED here,
+-               * but none of the higher level infrastructure supports
+-               * returning a specific error on buffer lookup failures.
+-               */
+-              xfs_alert(btp->bt_mount,
+-                        "%s: Block out of range: block 0x%llx, EOFS 0x%llx ",
+-                        __func__, blkno, eofs);
+-              return NULL;
+-      }
+-
+       /* get tree root */
+       pag = xfs_perag_get(btp->bt_mount,
+                               xfs_daddr_to_agno(btp->bt_mount, blkno));
diff --git a/queue-3.7/series b/queue-3.7/series
new file mode 100644 (file)
index 0000000..30c9598
--- /dev/null
@@ -0,0 +1 @@
+revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch