----- Original Message ----- > 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; I can see why this is needed but if we remove extent at idx 0 then wont this go negative and confuse the next call to xfs_iext_get_ext()? > if (delay) > break; > + > XFS_IFORK_NEXT_SET(ip, whichfork, > XFS_IFORK_NEXTENTS(ip, whichfork) - 1); > flags |= XFS_ILOG_CORE; > > _______________________________________________ > xfs mailing list > xfs@xxxxxxxxxxx > http://oss.sgi.com/mailman/listinfo/xfs _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs