From a5452a2e87026ebf735f1ed1e922437b94cd0dbd Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 14 Feb 2013 11:26:06 -0800 Subject: [PATCH] 3.7-stable patches added patches: revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch --- ...-on-blocks-beyond-the-filesystem-end.patch | 57 +++++++++++++++++++ queue-3.7/series | 1 + 2 files changed, 58 insertions(+) create mode 100644 queue-3.7/revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch create mode 100644 queue-3.7/series 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 index 00000000000..477b73e5f03 --- /dev/null +++ b/queue-3.7/revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch @@ -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 +From: Greg Kroah-Hartman +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 +Cc: Brian Foster +Cc: Ben Myers +Cc: CAI Qian +Cc: Paolo Bonzini +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..30c95980272 --- /dev/null +++ b/queue-3.7/series @@ -0,0 +1 @@ +revert-xfs-fix-_xfs_buf_find-oops-on-blocks-beyond-the-filesystem-end.patch -- 2.47.3