summaryrefslogtreecommitdiff
path: root/fs/xfs/linux-2.6/xfs_sync.c
diff options
context:
space:
mode:
authorDavid Chinner <david@fromorbit.com>2008-10-30 17:15:38 +1100
committerLachlan McIlroy <lachlan@sgi.com>2008-10-30 17:15:38 +1100
commitbe97d9d5577f6c8a36588e2f262c772c5422b128 (patch)
tree9146f1872b61ccaf77b7268680320eb213bfdcdd /fs/xfs/linux-2.6/xfs_sync.c
parentaacaa880bfac8fecd44b279a49688643890358f5 (diff)
downloadlwn-be97d9d5577f6c8a36588e2f262c772c5422b128.tar.gz
lwn-be97d9d5577f6c8a36588e2f262c772c5422b128.zip
[XFS] make SYNC_ATTR no longer use xfs_sync
Continue to de-multiplex xfs_sync be replacing all SYNC_ATTR callers with direct calls xfs_sync_inodes(). Add an assert into xfs_sync() to ensure we caught all the SYNC_ATTR callers. SGI-PV: 988140 SGI-Modid: xfs-linux-melb:xfs-kern:32308a 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/linux-2.6/xfs_sync.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_sync.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c
index 3c31137cdc7f..002ccb6f0cbe 100644
--- a/fs/xfs/linux-2.6/xfs_sync.c
+++ b/fs/xfs/linux-2.6/xfs_sync.c
@@ -342,9 +342,8 @@ xfs_sync_fsdata(
* periodically. We also push the inodes and
* superblock if we can lock them without sleeping
* and they are not pinned.
- * SYNC_ATTR - We need to flush the inodes. If SYNC_BDFLUSH is not
- * set, then we really want to lock each inode and flush
- * it.
+ * SYNC_ATTR - We need to flush the inodes. Now handled by direct calls
+ * to xfs_sync_inodes().
* SYNC_WAIT - All the flushes that take place in this call should
* be synchronous.
* SYNC_DELWRI - This tells us to push dirty pages associated with
@@ -373,6 +372,8 @@ xfs_sync(
int last_error = 0;
uint log_flags = XFS_LOG_FORCE;
+ ASSERT(!(flags & SYNC_ATTR));
+
/*
* Get the Quota Manager to flush the dquots.
*
@@ -403,20 +404,18 @@ xfs_sync(
xfs_log_force(mp, (xfs_lsn_t)0, log_flags);
- if (flags & (SYNC_ATTR|SYNC_DELWRI)) {
+ if (flags & SYNC_DELWRI) {
if (flags & SYNC_BDFLUSH)
xfs_finish_reclaim_all(mp, 1, XFS_IFLUSH_DELWRI_ELSE_ASYNC);
else
error = xfs_sync_inodes(mp, flags);
- }
-
- /*
- * Flushing out dirty data above probably generated more
- * log activity, so if this isn't vfs_sync() then flush
- * the log again.
- */
- if (flags & SYNC_DELWRI)
+ /*
+ * Flushing out dirty data above probably generated more
+ * log activity, so if this isn't vfs_sync() then flush
+ * the log again.
+ */
xfs_log_force(mp, 0, log_flags);
+ }
if (flags & SYNC_FSDATA) {
error = xfs_sync_fsdata(mp, flags);