]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Revert: xfs: fix _xfs_buf_find oops on blocks beyond the filesystem end
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Feb 2013 19:22:53 +0000 (11:22 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 17 Feb 2013 18:53:11 +0000 (10:53 -0800)
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

Acked-by: Ben Myers <bpm@sgi.com>
Acked-by: Dave Chinner <dchinner@redhat.com>
Cc: Brian Foster <bfoster@redhat.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

index 58a1f41189bf698f08d3b3ce4c62262b658e0b1e..4b0b8dd1b7b0ea2bbc431ef523ec5412eb4fd584 100644 (file)
@@ -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));