| 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;
|
| Previous by Date: | [PATCH 7/9] xfs: do not do pointer arithmetics on extent records, Christoph Hellwig |
|---|---|
| Next by Date: | [PATCH 9/9] xfs: check for valid indices in xfs_iext_get_ext and xfs_iext_idx_to_irec, Christoph Hellwig |
| Previous by Thread: | Re: [PATCH 7/9] xfs: do not do pointer arithmetics on extent records, Alex Elder |
| Next by Thread: | Re: [PATCH 3/9] xfs: correctly decrement the extent buffer index in xfs_bmap_del_extent, Lachlan McIlroy |
| Indexes: | [Date] [Thread] [Top] [All Lists] |