diff options
author | Liu Bo <bo.li.liu@oracle.com> | 2013-03-16 22:10:31 -0400 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2013-05-06 15:54:19 -0400 |
commit | 7abadb6431a057f1e3cf8d395acb8766b947ac85 (patch) | |
tree | da24303fb382097028c5d86f3dca7a4fed4fbc8f /fs | |
parent | 3173a18f70554fe7880bb2d85c7da566e364eb3c (diff) |
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')
-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 f47754a2fee4..898263f56d96 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, | |||
1935 | return 0; | 1935 | return 0; |
1936 | } | 1936 | } |
1937 | 1937 | ||
1938 | /* helper to cleanup workers */ | ||
1939 | static void btrfs_stop_all_workers(struct btrfs_fs_info *fs_info) | ||
1940 | { | ||
1941 | btrfs_stop_workers(&fs_info->generic_worker); | ||
1942 | btrfs_stop_workers(&fs_info->fixup_workers); | ||
1943 | btrfs_stop_workers(&fs_info->delalloc_workers); | ||
1944 | btrfs_stop_workers(&fs_info->workers); | ||
1945 | btrfs_stop_workers(&fs_info->endio_workers); | ||
1946 | btrfs_stop_workers(&fs_info->endio_meta_workers); | ||
1947 | btrfs_stop_workers(&fs_info->endio_raid56_workers); | ||
1948 | btrfs_stop_workers(&fs_info->rmw_workers); | ||
1949 | btrfs_stop_workers(&fs_info->endio_meta_write_workers); | ||
1950 | btrfs_stop_workers(&fs_info->endio_write_workers); | ||
1951 | btrfs_stop_workers(&fs_info->endio_freespace_worker); | ||
1952 | btrfs_stop_workers(&fs_info->submit_workers); | ||
1953 | btrfs_stop_workers(&fs_info->delayed_workers); | ||
1954 | btrfs_stop_workers(&fs_info->caching_workers); | ||
1955 | btrfs_stop_workers(&fs_info->readahead_workers); | ||
1956 | btrfs_stop_workers(&fs_info->flush_workers); | ||
1957 | } | ||
1958 | |||
1938 | /* helper to cleanup tree roots */ | 1959 | /* helper to cleanup tree roots */ |
1939 | static void free_root_pointers(struct btrfs_fs_info *info, int chunk_root) | 1960 | static void free_root_pointers(struct btrfs_fs_info *info, int chunk_root) |
1940 | { | 1961 | { |
@@ -2760,22 +2781,7 @@ fail_tree_roots: | |||
2760 | invalidate_inode_pages2(fs_info->btree_inode->i_mapping); | 2781 | invalidate_inode_pages2(fs_info->btree_inode->i_mapping); |
2761 | 2782 | ||
2762 | fail_sb_buffer: | 2783 | fail_sb_buffer: |
2763 | btrfs_stop_workers(&fs_info->generic_worker); | 2784 | btrfs_stop_all_workers(fs_info); |
2764 | btrfs_stop_workers(&fs_info->readahead_workers); | ||
2765 | btrfs_stop_workers(&fs_info->fixup_workers); | ||
2766 | btrfs_stop_workers(&fs_info->delalloc_workers); | ||
2767 | btrfs_stop_workers(&fs_info->workers); | ||
2768 | btrfs_stop_workers(&fs_info->endio_workers); | ||
2769 | btrfs_stop_workers(&fs_info->endio_meta_workers); | ||
2770 | btrfs_stop_workers(&fs_info->endio_raid56_workers); | ||
2771 | btrfs_stop_workers(&fs_info->rmw_workers); | ||
2772 | btrfs_stop_workers(&fs_info->endio_meta_write_workers); | ||
2773 | btrfs_stop_workers(&fs_info->endio_write_workers); | ||
2774 | btrfs_stop_workers(&fs_info->endio_freespace_worker); | ||
2775 | btrfs_stop_workers(&fs_info->submit_workers); | ||
2776 | btrfs_stop_workers(&fs_info->delayed_workers); | ||
2777 | btrfs_stop_workers(&fs_info->caching_workers); | ||
2778 | btrfs_stop_workers(&fs_info->flush_workers); | ||
2779 | fail_alloc: | 2785 | fail_alloc: |
2780 | fail_iput: | 2786 | fail_iput: |
2781 | btrfs_mapping_tree_free(&fs_info->mapping_tree); | 2787 | btrfs_mapping_tree_free(&fs_info->mapping_tree); |
@@ -3437,22 +3443,7 @@ int close_ctree(struct btrfs_root *root) | |||
3437 | 3443 | ||
3438 | iput(fs_info->btree_inode); | 3444 | iput(fs_info->btree_inode); |
3439 | 3445 | ||
3440 | btrfs_stop_workers(&fs_info->generic_worker); | 3446 | btrfs_stop_all_workers(fs_info); |
3441 | btrfs_stop_workers(&fs_info->fixup_workers); | ||
3442 | btrfs_stop_workers(&fs_info->delalloc_workers); | ||
3443 | btrfs_stop_workers(&fs_info->workers); | ||
3444 | btrfs_stop_workers(&fs_info->endio_workers); | ||
3445 | btrfs_stop_workers(&fs_info->endio_meta_workers); | ||
3446 | btrfs_stop_workers(&fs_info->endio_raid56_workers); | ||
3447 | btrfs_stop_workers(&fs_info->rmw_workers); | ||
3448 | btrfs_stop_workers(&fs_info->endio_meta_write_workers); | ||
3449 | btrfs_stop_workers(&fs_info->endio_write_workers); | ||
3450 | btrfs_stop_workers(&fs_info->endio_freespace_worker); | ||
3451 | btrfs_stop_workers(&fs_info->submit_workers); | ||
3452 | btrfs_stop_workers(&fs_info->delayed_workers); | ||
3453 | btrfs_stop_workers(&fs_info->caching_workers); | ||
3454 | btrfs_stop_workers(&fs_info->readahead_workers); | ||
3455 | btrfs_stop_workers(&fs_info->flush_workers); | ||
3456 | 3447 | ||
3457 | #ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY | 3448 | #ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY |
3458 | if (btrfs_test_opt(root, CHECK_INTEGRITY)) | 3449 | if (btrfs_test_opt(root, CHECK_INTEGRITY)) |