xfs: correctly decrement the extent buffer index in xfs_bmap_del_extent
The code in xfs_bmap_del_extent does not correctly decrement the extent buffer index when deleting a whole extent. Most of the time this gets caught by checks in xfs_bmapi that work around it and decrement it manually and thus wasn't noticed so far. Based on an earlier patch from Lachlan McIlroy. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Lachlan McIlroy <lmcilroy@redhat.com> Signed-off-by: Alex Elder <aelder@sgi.com>
This commit is contained in:
parent
87bef1812d
commit
233eebb9a9
1 changed files with 2 additions and 0 deletions
|
@ -2916,8 +2916,10 @@ xfs_bmap_del_extent(
|
||||||
*/
|
*/
|
||||||
xfs_iext_remove(ip, *idx, 1,
|
xfs_iext_remove(ip, *idx, 1,
|
||||||
whichfork == XFS_ATTR_FORK ? BMAP_ATTRFORK : 0);
|
whichfork == XFS_ATTR_FORK ? BMAP_ATTRFORK : 0);
|
||||||
|
--*idx;
|
||||||
if (delay)
|
if (delay)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
XFS_IFORK_NEXT_SET(ip, whichfork,
|
XFS_IFORK_NEXT_SET(ip, whichfork,
|
||||||
XFS_IFORK_NEXTENTS(ip, whichfork) - 1);
|
XFS_IFORK_NEXTENTS(ip, whichfork) - 1);
|
||||||
flags |= XFS_ILOG_CORE;
|
flags |= XFS_ILOG_CORE;
|
||||||
|
|
Loading…
Reference in a new issue