diff options
Diffstat (limited to 'fs/xfs/xfs_icache.c')
-rw-r--r-- | fs/xfs/xfs_icache.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c index a24364f25b4b..5fd13ba2482c 100644 --- a/fs/xfs/xfs_icache.c +++ b/fs/xfs/xfs_icache.c @@ -2010,6 +2010,23 @@ clear: clear_bit(XFS_OPFLAG_INACTIVATE_NOW_BIT, &mp->m_opflags); } +/* Flush inactivation work for all inodes in the same AGs as this inode. */ +void +xfs_inodegc_flush_ino( + struct xfs_mount *mp, + xfs_ino_t ino) +{ + struct xfs_perag *pag; + + if (!xfs_inodegc_running(mp)) + return; + + pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ino)); + mod_delayed_work(mp->m_gc_workqueue, &pag->pag_inodegc_work, 0); + flush_delayed_work(&pag->pag_inodegc_work); + xfs_perag_put(pag); +} + /* Stop all queued inactivation work. */ void xfs_inodegc_stop( |