diff options
Diffstat (limited to 'fs/fs-writeback.c')
| -rw-r--r-- | fs/fs-writeback.c | 42 | 
1 files changed, 12 insertions, 30 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index f855916657b..539f36cf3e4 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -14,7 +14,7 @@   */  #include <linux/kernel.h> -#include <linux/module.h> +#include <linux/export.h>  #include <linux/spinlock.h>  #include <linux/slab.h>  #include <linux/sched.h> @@ -53,14 +53,6 @@ struct wb_writeback_work {  };  /* - * Include the creation of the trace points after defining the - * wb_writeback_work structure so that the definition remains local to this - * file. - */ -#define CREATE_TRACE_POINTS -#include <trace/events/writeback.h> - -/*   * We don't actually have pdflush, but this one is exported though /proc...   */  int nr_pdflush_threads; @@ -92,6 +84,14 @@ static inline struct inode *wb_inode(struct list_head *head)  	return list_entry(head, struct inode, i_wb_list);  } +/* + * Include the creation of the trace points after defining the + * wb_writeback_work structure and inline functions so that the definition + * remains local to this file. + */ +#define CREATE_TRACE_POINTS +#include <trace/events/writeback.h> +  /* Wakeup flusher thread or forker thread to fork it. Requires bdi->wb_lock. */  static void bdi_wakeup_flusher(struct backing_dev_info *bdi)  { @@ -256,7 +256,8 @@ static bool inode_dirtied_after(struct inode *inode, unsigned long t)  }  /* - * Move expired dirty inodes from @delaying_queue to @dispatch_queue. + * Move expired (dirtied after work->older_than_this) dirty inodes from + * @delaying_queue to @dispatch_queue.   */  static int move_expired_inodes(struct list_head *delaying_queue,  			       struct list_head *dispatch_queue, @@ -1148,23 +1149,6 @@ out_unlock_inode:  }  EXPORT_SYMBOL(__mark_inode_dirty); -/* - * Write out a superblock's list of dirty inodes.  A wait will be performed - * upon no inodes, all inodes or the final one, depending upon sync_mode. - * - * If older_than_this is non-NULL, then only write out inodes which - * had their first dirtying at a time earlier than *older_than_this. - * - * If `bdi' is non-zero then we're being asked to writeback a specific queue. - * This function assumes that the blockdev superblock's inodes are backed by - * a variety of queues, so all inodes are searched.  For other superblocks, - * assume that all inodes are backed by the same queue. - * - * The inodes to be written are parked on bdi->b_io.  They are moved back onto - * bdi->b_dirty as they are selected for writing.  This way, none can be missed - * on the writer throttling path, and we get decent balancing between many - * throttled threads: we don't want them all piling up on inode_sync_wait. - */  static void wait_sb_inodes(struct super_block *sb)  {  	struct inode *inode, *old_inode = NULL; @@ -1284,7 +1268,7 @@ int writeback_inodes_sb_if_idle(struct super_block *sb, enum wb_reason reason)  EXPORT_SYMBOL(writeback_inodes_sb_if_idle);  /** - * writeback_inodes_sb_if_idle	-	start writeback if none underway + * writeback_inodes_sb_nr_if_idle	-	start writeback if none underway   * @sb: the superblock   * @nr: the number of pages to write   * @reason: reason why some writeback work was initiated @@ -1364,8 +1348,6 @@ int write_inode_now(struct inode *inode, int sync)  	ret = writeback_single_inode(inode, wb, &wbc);  	spin_unlock(&inode->i_lock);  	spin_unlock(&wb->list_lock); -	if (sync) -		inode_sync_wait(inode);  	return ret;  }  EXPORT_SYMBOL(write_inode_now);  |