aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQu Wenruo <quwenruo@cn.fujitsu.com>2014-02-27 21:46:15 -0500
committerJosef Bacik <jbacik@fb.com>2014-03-10 15:17:12 -0400
commit5b3bc44e2e69d42edf40ca3785040d233ca949f4 (patch)
treeb0d2832d426253db620fcffec3bddd80cf1ff24f
parentdc6e320998fb907e4c19032d545d461bfe5040d1 (diff)
btrfs: Replace fs_info->delayed_workers workqueue with btrfs_workqueue.
Replace the fs_info->delayed_workers with the newly created btrfs_workqueue. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Tested-by: David Sterba <dsterba@suse.cz> Signed-off-by: Josef Bacik <jbacik@fb.com>
-rw-r--r--fs/btrfs/ctree.h2
-rw-r--r--fs/btrfs/delayed-inode.c10
-rw-r--r--fs/btrfs/disk-io.c10
-rw-r--r--fs/btrfs/super.c2
4 files changed, 11 insertions, 13 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index dd79fc5a8c99..c07b67f6f924 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -1525,7 +1525,7 @@ struct btrfs_fs_info {
1525 * for the sys_munmap function call path 1525 * for the sys_munmap function call path
1526 */ 1526 */
1527 struct btrfs_workqueue_struct *fixup_workers; 1527 struct btrfs_workqueue_struct *fixup_workers;
1528 struct btrfs_workers delayed_workers; 1528 struct btrfs_workqueue_struct *delayed_workers;
1529 struct task_struct *transaction_kthread; 1529 struct task_struct *transaction_kthread;
1530 struct task_struct *cleaner_kthread; 1530 struct task_struct *cleaner_kthread;
1531 int thread_pool_size; 1531 int thread_pool_size;
diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
index 451b00c86f6c..76e85d66801f 100644
--- a/fs/btrfs/delayed-inode.c
+++ b/fs/btrfs/delayed-inode.c
@@ -1318,10 +1318,10 @@ void btrfs_remove_delayed_node(struct inode *inode)
1318struct btrfs_async_delayed_work { 1318struct btrfs_async_delayed_work {
1319 struct btrfs_delayed_root *delayed_root; 1319 struct btrfs_delayed_root *delayed_root;
1320 int nr; 1320 int nr;
1321 struct btrfs_work work; 1321 struct btrfs_work_struct work;
1322}; 1322};
1323 1323
1324static void btrfs_async_run_delayed_root(struct btrfs_work *work) 1324static void btrfs_async_run_delayed_root(struct btrfs_work_struct *work)
1325{ 1325{
1326 struct btrfs_async_delayed_work *async_work; 1326 struct btrfs_async_delayed_work *async_work;
1327 struct btrfs_delayed_root *delayed_root; 1327 struct btrfs_delayed_root *delayed_root;
@@ -1392,11 +1392,11 @@ static int btrfs_wq_run_delayed_node(struct btrfs_delayed_root *delayed_root,
1392 return -ENOMEM; 1392 return -ENOMEM;
1393 1393
1394 async_work->delayed_root = delayed_root; 1394 async_work->delayed_root = delayed_root;
1395 async_work->work.func = btrfs_async_run_delayed_root; 1395 btrfs_init_work(&async_work->work, btrfs_async_run_delayed_root,
1396 async_work->work.flags = 0; 1396 NULL, NULL);
1397 async_work->nr = nr; 1397 async_work->nr = nr;
1398 1398
1399 btrfs_queue_worker(&root->fs_info->delayed_workers, &async_work->work); 1399 btrfs_queue_work(root->fs_info->delayed_workers, &async_work->work);
1400 return 0; 1400 return 0;
1401} 1401}
1402 1402
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 392cd3baefe4..f5da1fd23ee9 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -2006,7 +2006,7 @@ static void btrfs_stop_all_workers(struct btrfs_fs_info *fs_info)
2006 btrfs_destroy_workqueue(fs_info->endio_write_workers); 2006 btrfs_destroy_workqueue(fs_info->endio_write_workers);
2007 btrfs_destroy_workqueue(fs_info->endio_freespace_worker); 2007 btrfs_destroy_workqueue(fs_info->endio_freespace_worker);
2008 btrfs_destroy_workqueue(fs_info->submit_workers); 2008 btrfs_destroy_workqueue(fs_info->submit_workers);
2009 btrfs_stop_workers(&fs_info->delayed_workers); 2009 btrfs_destroy_workqueue(fs_info->delayed_workers);
2010 btrfs_destroy_workqueue(fs_info->caching_workers); 2010 btrfs_destroy_workqueue(fs_info->caching_workers);
2011 btrfs_destroy_workqueue(fs_info->readahead_workers); 2011 btrfs_destroy_workqueue(fs_info->readahead_workers);
2012 btrfs_destroy_workqueue(fs_info->flush_workers); 2012 btrfs_destroy_workqueue(fs_info->flush_workers);
@@ -2519,9 +2519,8 @@ int open_ctree(struct super_block *sb,
2519 btrfs_alloc_workqueue("endio-write", flags, max_active, 2); 2519 btrfs_alloc_workqueue("endio-write", flags, max_active, 2);
2520 fs_info->endio_freespace_worker = 2520 fs_info->endio_freespace_worker =
2521 btrfs_alloc_workqueue("freespace-write", flags, max_active, 0); 2521 btrfs_alloc_workqueue("freespace-write", flags, max_active, 0);
2522 btrfs_init_workers(&fs_info->delayed_workers, "delayed-meta", 2522 fs_info->delayed_workers =
2523 fs_info->thread_pool_size, 2523 btrfs_alloc_workqueue("delayed-meta", flags, max_active, 0);
2524 &fs_info->generic_worker);
2525 fs_info->readahead_workers = 2524 fs_info->readahead_workers =
2526 btrfs_alloc_workqueue("readahead", flags, max_active, 2); 2525 btrfs_alloc_workqueue("readahead", flags, max_active, 2);
2527 btrfs_init_workers(&fs_info->qgroup_rescan_workers, "qgroup-rescan", 1, 2526 btrfs_init_workers(&fs_info->qgroup_rescan_workers, "qgroup-rescan", 1,
@@ -2532,7 +2531,6 @@ int open_ctree(struct super_block *sb,
2532 * return -ENOMEM if any of these fail. 2531 * return -ENOMEM if any of these fail.
2533 */ 2532 */
2534 ret = btrfs_start_workers(&fs_info->generic_worker); 2533 ret = btrfs_start_workers(&fs_info->generic_worker);
2535 ret |= btrfs_start_workers(&fs_info->delayed_workers);
2536 ret |= btrfs_start_workers(&fs_info->qgroup_rescan_workers); 2534 ret |= btrfs_start_workers(&fs_info->qgroup_rescan_workers);
2537 if (ret) { 2535 if (ret) {
2538 err = -ENOMEM; 2536 err = -ENOMEM;
@@ -2545,7 +2543,7 @@ int open_ctree(struct super_block *sb,
2545 fs_info->endio_write_workers && fs_info->endio_raid56_workers && 2543 fs_info->endio_write_workers && fs_info->endio_raid56_workers &&
2546 fs_info->endio_freespace_worker && fs_info->rmw_workers && 2544 fs_info->endio_freespace_worker && fs_info->rmw_workers &&
2547 fs_info->caching_workers && fs_info->readahead_workers && 2545 fs_info->caching_workers && fs_info->readahead_workers &&
2548 fs_info->fixup_workers)) { 2546 fs_info->fixup_workers && fs_info->delayed_workers)) {
2549 err = -ENOMEM; 2547 err = -ENOMEM;
2550 goto fail_sb_buffer; 2548 goto fail_sb_buffer;
2551 } 2549 }
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 2e1d6cf4dc66..fd07d039b2de 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1334,7 +1334,7 @@ static void btrfs_resize_thread_pool(struct btrfs_fs_info *fs_info,
1334 new_pool_size); 1334 new_pool_size);
1335 btrfs_workqueue_set_max(fs_info->endio_write_workers, new_pool_size); 1335 btrfs_workqueue_set_max(fs_info->endio_write_workers, new_pool_size);
1336 btrfs_workqueue_set_max(fs_info->endio_freespace_worker, new_pool_size); 1336 btrfs_workqueue_set_max(fs_info->endio_freespace_worker, new_pool_size);
1337 btrfs_set_max_workers(&fs_info->delayed_workers, new_pool_size); 1337 btrfs_workqueue_set_max(fs_info->delayed_workers, new_pool_size);
1338 btrfs_workqueue_set_max(fs_info->readahead_workers, new_pool_size); 1338 btrfs_workqueue_set_max(fs_info->readahead_workers, new_pool_size);
1339 btrfs_set_max_workers(&fs_info->scrub_wr_completion_workers, 1339 btrfs_set_max_workers(&fs_info->scrub_wr_completion_workers,
1340 new_pool_size); 1340 new_pool_size);