diff options
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r-- | fs/btrfs/disk-io.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index d0e61d58b121..32a9ec11888d 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -2205,11 +2205,9 @@ static void btrfs_stop_all_workers(struct btrfs_fs_info *fs_info) | |||
2205 | btrfs_destroy_workqueue(fs_info->delalloc_workers); | 2205 | btrfs_destroy_workqueue(fs_info->delalloc_workers); |
2206 | btrfs_destroy_workqueue(fs_info->workers); | 2206 | btrfs_destroy_workqueue(fs_info->workers); |
2207 | btrfs_destroy_workqueue(fs_info->endio_workers); | 2207 | btrfs_destroy_workqueue(fs_info->endio_workers); |
2208 | btrfs_destroy_workqueue(fs_info->endio_meta_workers); | ||
2209 | btrfs_destroy_workqueue(fs_info->endio_raid56_workers); | 2208 | btrfs_destroy_workqueue(fs_info->endio_raid56_workers); |
2210 | btrfs_destroy_workqueue(fs_info->endio_repair_workers); | 2209 | btrfs_destroy_workqueue(fs_info->endio_repair_workers); |
2211 | btrfs_destroy_workqueue(fs_info->rmw_workers); | 2210 | btrfs_destroy_workqueue(fs_info->rmw_workers); |
2212 | btrfs_destroy_workqueue(fs_info->endio_meta_write_workers); | ||
2213 | btrfs_destroy_workqueue(fs_info->endio_write_workers); | 2211 | btrfs_destroy_workqueue(fs_info->endio_write_workers); |
2214 | btrfs_destroy_workqueue(fs_info->endio_freespace_worker); | 2212 | btrfs_destroy_workqueue(fs_info->endio_freespace_worker); |
2215 | btrfs_destroy_workqueue(fs_info->submit_workers); | 2213 | btrfs_destroy_workqueue(fs_info->submit_workers); |
@@ -2219,6 +2217,13 @@ static void btrfs_stop_all_workers(struct btrfs_fs_info *fs_info) | |||
2219 | btrfs_destroy_workqueue(fs_info->flush_workers); | 2217 | btrfs_destroy_workqueue(fs_info->flush_workers); |
2220 | btrfs_destroy_workqueue(fs_info->qgroup_rescan_workers); | 2218 | btrfs_destroy_workqueue(fs_info->qgroup_rescan_workers); |
2221 | btrfs_destroy_workqueue(fs_info->extent_workers); | 2219 | btrfs_destroy_workqueue(fs_info->extent_workers); |
2220 | /* | ||
2221 | * Now that all other work queues are destroyed, we can safely destroy | ||
2222 | * the queues used for metadata I/O, since tasks from those other work | ||
2223 | * queues can do metadata I/O operations. | ||
2224 | */ | ||
2225 | btrfs_destroy_workqueue(fs_info->endio_meta_workers); | ||
2226 | btrfs_destroy_workqueue(fs_info->endio_meta_write_workers); | ||
2222 | } | 2227 | } |
2223 | 2228 | ||
2224 | static void free_root_extent_buffers(struct btrfs_root *root) | 2229 | static void free_root_extent_buffers(struct btrfs_root *root) |