Introduce queue_dirty() to enqueue a newly dirtied inode.
It helps remove duplicate code.

Cc: Michael Rubin <[EMAIL PROTECTED]>
Cc: Peter Zijlstra <[EMAIL PROTECTED]>
Signed-off-by: Fengguang Wu <[EMAIL PROTECTED]>
---
 fs/fs-writeback.c |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

--- linux-mm.orig/fs/fs-writeback.c
+++ linux-mm/fs/fs-writeback.c
@@ -25,6 +25,15 @@
 #include <linux/buffer_head.h>
 #include "internal.h"
 
+/*
+ * Enqueue a newly dirtied inode.
+ */
+static void queue_dirty(struct inode *inode)
+{
+       inode->dirtied_when = jiffies;
+       list_move(&inode->i_list, &inode->i_sb->s_dirty);
+}
+
 /**
  *     __mark_inode_dirty -    internal function
  *     @inode: inode to mark
@@ -122,10 +131,8 @@ void __mark_inode_dirty(struct inode *in
                 * If the inode was already on s_dirty/s_io/s_more_io, don't
                 * reposition it (that would break s_dirty time-ordering).
                 */
-               if (!was_dirty) {
-                       inode->dirtied_when = jiffies;
-                       list_move(&inode->i_list, &sb->s_dirty);
-               }
+               if (!was_dirty)
+                       queue_dirty(inode);
        }
 out:
        spin_unlock(&inode_lock);
@@ -445,10 +452,8 @@ int generic_sync_sb_inodes(struct super_
                err = __writeback_single_inode(inode, wbc);
                if (!ret)
                        ret = err;
-               if (wbc->sync_mode == WB_SYNC_HOLD) {
-                       inode->dirtied_when = jiffies;
-                       list_move(&inode->i_list, &sb->s_dirty);
-               }
+               if (wbc->sync_mode == WB_SYNC_HOLD)
+                       queue_dirty(inode);
                if (current_is_pdflush())
                        writeback_release(bdi);
                if (wbc->pages_skipped != pages_skipped) {

-- 
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to