Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
* 'for-linus' of git://oss.sgi.com/xfs/xfs: xfs: properly account for reclaimed inodes
This commit is contained in:
Коммит
5710c2b275
|
@ -668,14 +668,11 @@ xfs_inode_set_reclaim_tag(
|
|||
xfs_perag_put(pag);
|
||||
}
|
||||
|
||||
void
|
||||
__xfs_inode_clear_reclaim_tag(
|
||||
xfs_mount_t *mp,
|
||||
STATIC void
|
||||
__xfs_inode_clear_reclaim(
|
||||
xfs_perag_t *pag,
|
||||
xfs_inode_t *ip)
|
||||
{
|
||||
radix_tree_tag_clear(&pag->pag_ici_root,
|
||||
XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG);
|
||||
pag->pag_ici_reclaimable--;
|
||||
if (!pag->pag_ici_reclaimable) {
|
||||
/* clear the reclaim tag from the perag radix tree */
|
||||
|
@ -689,6 +686,17 @@ __xfs_inode_clear_reclaim_tag(
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
__xfs_inode_clear_reclaim_tag(
|
||||
xfs_mount_t *mp,
|
||||
xfs_perag_t *pag,
|
||||
xfs_inode_t *ip)
|
||||
{
|
||||
radix_tree_tag_clear(&pag->pag_ici_root,
|
||||
XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG);
|
||||
__xfs_inode_clear_reclaim(pag, ip);
|
||||
}
|
||||
|
||||
/*
|
||||
* Inodes in different states need to be treated differently, and the return
|
||||
* value of xfs_iflush is not sufficient to get this right. The following table
|
||||
|
@ -838,6 +846,7 @@ reclaim:
|
|||
if (!radix_tree_delete(&pag->pag_ici_root,
|
||||
XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino)))
|
||||
ASSERT(0);
|
||||
__xfs_inode_clear_reclaim(pag, ip);
|
||||
write_unlock(&pag->pag_ici_lock);
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче