xfs: maintain a sequence count for inode fork manipulations
Add a simple 32-bit unsigned integer as the sequence count for modifications to the extent list in the inode fork. This will be used to optimize away extent list lookups in the writeback code. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:

committed by
Darrick J. Wong

parent
9e037cb797
commit
745b3f76d1
@@ -624,6 +624,8 @@ xfs_iext_insert(
|
||||
struct xfs_iext_leaf *new = NULL;
|
||||
int nr_entries, i;
|
||||
|
||||
ifp->if_seq++;
|
||||
|
||||
if (ifp->if_height == 0)
|
||||
xfs_iext_alloc_root(ifp, cur);
|
||||
else if (ifp->if_height == 1)
|
||||
@@ -864,6 +866,8 @@ xfs_iext_remove(
|
||||
ASSERT(ifp->if_u1.if_root != NULL);
|
||||
ASSERT(xfs_iext_valid(ifp, cur));
|
||||
|
||||
ifp->if_seq++;
|
||||
|
||||
nr_entries = xfs_iext_leaf_nr_entries(ifp, leaf, cur->pos) - 1;
|
||||
for (i = cur->pos; i < nr_entries; i++)
|
||||
leaf->recs[i] = leaf->recs[i + 1];
|
||||
@@ -970,6 +974,8 @@ xfs_iext_update_extent(
|
||||
{
|
||||
struct xfs_ifork *ifp = xfs_iext_state_to_fork(ip, state);
|
||||
|
||||
ifp->if_seq++;
|
||||
|
||||
if (cur->pos == 0) {
|
||||
struct xfs_bmbt_irec old;
|
||||
|
||||
|
Reference in New Issue
Block a user