aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_inode.c
diff options
context:
space:
mode:
authorDavid Chinner <david@fromorbit.com>2008-10-30 02:06:28 -0400
committerLachlan McIlroy <lachlan@sgi.com>2008-10-30 02:06:28 -0400
commit75c68f411b1242c8fdaf731078fdd4e77b14981d (patch)
tree776eab26d76e14dc0478015d1f352c5d2bea9daa /fs/xfs/xfs_inode.c
parenta167b17e899a930758506bbc18748078d6fd8c89 (diff)
[XFS] Remove xfs_iflush_all and clean up xfs_finish_reclaim_all()
xfs_iflush_all() walks the m_inodes list to find inodes that need reclaiming. We already have such a list - the m_del_inodes list. Replace xfs_iflush_all() with a call to xfs_finish_reclaim_all() and clean up xfs_finish_reclaim_all() to handle the different flush modes now needed. Originally based on a patch from Christoph Hellwig. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o revert xfs_syncsub() inode reclaim behaviour back to original code o xfs_quiesce_fs() should use XFS_IFLUSH_DELWRI_ELSE_ASYNC, not XFS_IFLUSH_ASYNC, to prevent change of behaviour. SGI-PV: 988139 SGI-Modid: xfs-linux-melb:xfs-kern:32284a Signed-off-by: David Chinner <david@fromorbit.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Christoph Hellwig <hch@infradead.org>
Diffstat (limited to 'fs/xfs/xfs_inode.c')
-rw-r--r--fs/xfs/xfs_inode.c35
1 files changed, 0 insertions, 35 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 2b1294b8ad79..0c65ba2faa43 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -3499,41 +3499,6 @@ corrupt_out:
3499} 3499}
3500 3500
3501 3501
3502/*
3503 * Flush all inactive inodes in mp.
3504 */
3505void
3506xfs_iflush_all(
3507 xfs_mount_t *mp)
3508{
3509 xfs_inode_t *ip;
3510
3511 again:
3512 XFS_MOUNT_ILOCK(mp);
3513 ip = mp->m_inodes;
3514 if (ip == NULL)
3515 goto out;
3516
3517 do {
3518 /* Make sure we skip markers inserted by sync */
3519 if (ip->i_mount == NULL) {
3520 ip = ip->i_mnext;
3521 continue;
3522 }
3523
3524 if (!VFS_I(ip)) {
3525 XFS_MOUNT_IUNLOCK(mp);
3526 xfs_finish_reclaim(ip, 0, XFS_IFLUSH_ASYNC);
3527 goto again;
3528 }
3529
3530 ASSERT(vn_count(VFS_I(ip)) == 0);
3531
3532 ip = ip->i_mnext;
3533 } while (ip != mp->m_inodes);
3534 out:
3535 XFS_MOUNT_IUNLOCK(mp);
3536}
3537 3502
3538#ifdef XFS_ILOCK_TRACE 3503#ifdef XFS_ILOCK_TRACE
3539ktrace_t *xfs_ilock_trace_buf; 3504ktrace_t *xfs_ilock_trace_buf;