]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit
xfs: don't create overlapping extents in xfs_bmap_add_extent_delay_real
authorChristoph Hellwig <hch@lst.de>
Fri, 17 Nov 2017 04:11:34 +0000 (22:11 -0600)
committerEric Sandeen <sandeen@redhat.com>
Fri, 17 Nov 2017 04:11:34 +0000 (22:11 -0600)
commitd29ce3925345c850d29db8fdc892e18568c37a38
tree88400293436745d0e6a39bba6d2c7e7990472ae0
parent893d9af8295b6b76ff380f3e56d1d27c6a216f95
xfs: don't create overlapping extents in xfs_bmap_add_extent_delay_real

Source kernel commit: 1bfd7618cbf2de630c845f60f5370671c2cd1c5d

Two cases in xfs_bmap_add_extent_delay_real currently insert a new
extent before updating the existing one that is being split.  While
this works fine with a simple extent list, a more complex tree can't
easily cope with overlapping extent.  Reshuffle the code a bit to update
the slot of the existing delalloc extent to the new real extent before
inserting the shortened delalloc extent before or after it.  This
avoids the overlapping extents while still allowing to update the
br_startblock field of the delalloc extent with the updated indirect
block reservation.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_bmap.c