xfs
[Top] [All Lists]

[PATCH 3/9] xfs: correctly decrement the extent buffer index in xfs_bmap

To: xfs@xxxxxxxxxxx
Subject: [PATCH 3/9] xfs: correctly decrement the extent buffer index in xfs_bmap_del_extent
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 11 May 2011 11:04:05 -0400
References: <20110511150402.258164661@xxxxxxxxxxxxxxxxxxxxxx>
User-agent: quilt/0.48-1
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@xxxxxx>

Index: xfs/fs/xfs/xfs_bmap.c
===================================================================
--- xfs.orig/fs/xfs/xfs_bmap.c  2011-05-10 17:11:21.212901236 +0200
+++ xfs/fs/xfs/xfs_bmap.c       2011-05-10 17:13:36.177399627 +0200
@@ -2916,8 +2916,10 @@ xfs_bmap_del_extent(
                 */
                xfs_iext_remove(ip, *idx, 1,
                                whichfork == XFS_ATTR_FORK ? BMAP_ATTRFORK : 0);
+               --*idx;
                if (delay)
                        break;
+
                XFS_IFORK_NEXT_SET(ip, whichfork,
                        XFS_IFORK_NEXTENTS(ip, whichfork) - 1);
                flags |= XFS_ILOG_CORE;

<Prev in Thread] Current Thread [Next in Thread>