• Lachlan McIlroy's avatar
    [XFS] fix extent corruption in xfs_iext_irec_compact_full() · 6278debd
    Lachlan McIlroy authored
    This function is used to compact the indirect extent list by moving
    extents from one page to the previous to fill them up. After we move some
    extents to an earlier page we need to shuffle the remaining extents to the
    start of the page. The actual bug here is the second argument to memmove()
    needs to index past the extents, that were copied to the previous page,
    and move the remaining extents. For pages that are already full (ie
    ext_avail == 0) the compaction code has no net effect so don't do it.
    
    SGI-PV: 983337
    
    SGI-Modid: xfs-linux-melb:xfs-kern:31332a
    Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
    6278debd
xfs_inode.c 134 KB