diff options
| author | Miao Xie <miaox@cn.fujitsu.com> | 2014-03-06 13:55:01 +0800 | 
|---|---|---|
| committer | Josef Bacik <jbacik@fb.com> | 2014-03-10 15:17:27 -0400 | 
| commit | 6c255e67cec1c38a0569c7f823eba63f9449ccf8 (patch) | |
| tree | 0e23bdebb81ce14843d85dd0deb861cc2c0ef5fb /fs/btrfs/extent-tree.c | |
| parent | 24af7dd1881f9f5c13c7d82e22d7858137383766 (diff) | |
Btrfs: don't flush all delalloc inodes when we doesn't get s_umount lock
We needn't flush all delalloc inodes when we doesn't get s_umount lock,
or we would make the tasks wait for a long time.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Diffstat (limited to 'fs/btrfs/extent-tree.c')
| -rw-r--r-- | fs/btrfs/extent-tree.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 5c0c5457268a..c6b6a6e3e735 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -3971,7 +3971,7 @@ static int can_overcommit(struct btrfs_root *root,  }  static void btrfs_writeback_inodes_sb_nr(struct btrfs_root *root, -					 unsigned long nr_pages) +					 unsigned long nr_pages, int nr_items)  {  	struct super_block *sb = root->fs_info->sb; @@ -3986,9 +3986,9 @@ static void btrfs_writeback_inodes_sb_nr(struct btrfs_root *root,  		 * the filesystem is readonly(all dirty pages are written to  		 * the disk).  		 */ -		btrfs_start_delalloc_roots(root->fs_info, 0); +		btrfs_start_delalloc_roots(root->fs_info, 0, nr_items);  		if (!current->journal_info) -			btrfs_wait_ordered_roots(root->fs_info, -1); +			btrfs_wait_ordered_roots(root->fs_info, nr_items);  	}  } @@ -4045,7 +4045,7 @@ static void shrink_delalloc(struct btrfs_root *root, u64 to_reclaim, u64 orig,  	while (delalloc_bytes && loops < 3) {  		max_reclaim = min(delalloc_bytes, to_reclaim);  		nr_pages = max_reclaim >> PAGE_CACHE_SHIFT; -		btrfs_writeback_inodes_sb_nr(root, nr_pages); +		btrfs_writeback_inodes_sb_nr(root, nr_pages, items);  		/*  		 * We need to wait for the async pages to actually start before  		 * we do anything.  | 
