diff options
| author | Liu Bo <bo.li.liu@oracle.com> | 2013-03-17 02:10:31 +0000 | 
|---|---|---|
| committer | Josef Bacik <jbacik@fusionio.com> | 2013-05-06 15:54:19 -0400 | 
| commit | 7abadb6431a057f1e3cf8d395acb8766b947ac85 (patch) | |
| tree | da24303fb382097028c5d86f3dca7a4fed4fbc8f /fs/btrfs/disk-io.c | |
| parent | 3173a18f70554fe7880bb2d85c7da566e364eb3c (diff) | |
| download | olio-linux-3.10-7abadb6431a057f1e3cf8d395acb8766b947ac85.tar.xz olio-linux-3.10-7abadb6431a057f1e3cf8d395acb8766b947ac85.zip  | |
Btrfs: share stop worker code
Share the exactly same code of stopping workers.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs/btrfs/disk-io.c')
| -rw-r--r-- | fs/btrfs/disk-io.c | 55 | 
1 files changed, 23 insertions, 32 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index f47754a2fee..898263f56d9 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -1935,6 +1935,27 @@ static noinline int next_root_backup(struct btrfs_fs_info *info,  	return 0;  } +/* helper to cleanup workers */ +static void btrfs_stop_all_workers(struct btrfs_fs_info *fs_info) +{ +	btrfs_stop_workers(&fs_info->generic_worker); +	btrfs_stop_workers(&fs_info->fixup_workers); +	btrfs_stop_workers(&fs_info->delalloc_workers); +	btrfs_stop_workers(&fs_info->workers); +	btrfs_stop_workers(&fs_info->endio_workers); +	btrfs_stop_workers(&fs_info->endio_meta_workers); +	btrfs_stop_workers(&fs_info->endio_raid56_workers); +	btrfs_stop_workers(&fs_info->rmw_workers); +	btrfs_stop_workers(&fs_info->endio_meta_write_workers); +	btrfs_stop_workers(&fs_info->endio_write_workers); +	btrfs_stop_workers(&fs_info->endio_freespace_worker); +	btrfs_stop_workers(&fs_info->submit_workers); +	btrfs_stop_workers(&fs_info->delayed_workers); +	btrfs_stop_workers(&fs_info->caching_workers); +	btrfs_stop_workers(&fs_info->readahead_workers); +	btrfs_stop_workers(&fs_info->flush_workers); +} +  /* helper to cleanup tree roots */  static void free_root_pointers(struct btrfs_fs_info *info, int chunk_root)  { @@ -2760,22 +2781,7 @@ fail_tree_roots:  	invalidate_inode_pages2(fs_info->btree_inode->i_mapping);  fail_sb_buffer: -	btrfs_stop_workers(&fs_info->generic_worker); -	btrfs_stop_workers(&fs_info->readahead_workers); -	btrfs_stop_workers(&fs_info->fixup_workers); -	btrfs_stop_workers(&fs_info->delalloc_workers); -	btrfs_stop_workers(&fs_info->workers); -	btrfs_stop_workers(&fs_info->endio_workers); -	btrfs_stop_workers(&fs_info->endio_meta_workers); -	btrfs_stop_workers(&fs_info->endio_raid56_workers); -	btrfs_stop_workers(&fs_info->rmw_workers); -	btrfs_stop_workers(&fs_info->endio_meta_write_workers); -	btrfs_stop_workers(&fs_info->endio_write_workers); -	btrfs_stop_workers(&fs_info->endio_freespace_worker); -	btrfs_stop_workers(&fs_info->submit_workers); -	btrfs_stop_workers(&fs_info->delayed_workers); -	btrfs_stop_workers(&fs_info->caching_workers); -	btrfs_stop_workers(&fs_info->flush_workers); +	btrfs_stop_all_workers(fs_info);  fail_alloc:  fail_iput:  	btrfs_mapping_tree_free(&fs_info->mapping_tree); @@ -3437,22 +3443,7 @@ int close_ctree(struct btrfs_root *root)  	iput(fs_info->btree_inode); -	btrfs_stop_workers(&fs_info->generic_worker); -	btrfs_stop_workers(&fs_info->fixup_workers); -	btrfs_stop_workers(&fs_info->delalloc_workers); -	btrfs_stop_workers(&fs_info->workers); -	btrfs_stop_workers(&fs_info->endio_workers); -	btrfs_stop_workers(&fs_info->endio_meta_workers); -	btrfs_stop_workers(&fs_info->endio_raid56_workers); -	btrfs_stop_workers(&fs_info->rmw_workers); -	btrfs_stop_workers(&fs_info->endio_meta_write_workers); -	btrfs_stop_workers(&fs_info->endio_write_workers); -	btrfs_stop_workers(&fs_info->endio_freespace_worker); -	btrfs_stop_workers(&fs_info->submit_workers); -	btrfs_stop_workers(&fs_info->delayed_workers); -	btrfs_stop_workers(&fs_info->caching_workers); -	btrfs_stop_workers(&fs_info->readahead_workers); -	btrfs_stop_workers(&fs_info->flush_workers); +	btrfs_stop_all_workers(fs_info);  #ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY  	if (btrfs_test_opt(root, CHECK_INTEGRITY))  |