summaryrefslogtreecommitdiffstats
path: root/fs/ceph/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ceph/super.c')
-rw-r--r--fs/ceph/super.c28
1 files changed, 7 insertions, 21 deletions
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 01be7c1bc4c6..d57fa60dcd43 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -672,18 +672,12 @@ static struct ceph_fs_client *create_fs_client(struct ceph_mount_options *fsopt,
672 * The number of concurrent works can be high but they don't need 672 * The number of concurrent works can be high but they don't need
673 * to be processed in parallel, limit concurrency. 673 * to be processed in parallel, limit concurrency.
674 */ 674 */
675 fsc->wb_wq = alloc_workqueue("ceph-writeback", 0, 1); 675 fsc->inode_wq = alloc_workqueue("ceph-inode", WQ_UNBOUND, 0);
676 if (!fsc->wb_wq) 676 if (!fsc->inode_wq)
677 goto fail_client; 677 goto fail_client;
678 fsc->pg_inv_wq = alloc_workqueue("ceph-pg-invalid", 0, 1);
679 if (!fsc->pg_inv_wq)
680 goto fail_wb_wq;
681 fsc->trunc_wq = alloc_workqueue("ceph-trunc", 0, 1);
682 if (!fsc->trunc_wq)
683 goto fail_pg_inv_wq;
684 fsc->cap_wq = alloc_workqueue("ceph-cap", 0, 1); 678 fsc->cap_wq = alloc_workqueue("ceph-cap", 0, 1);
685 if (!fsc->cap_wq) 679 if (!fsc->cap_wq)
686 goto fail_trunc_wq; 680 goto fail_inode_wq;
687 681
688 /* set up mempools */ 682 /* set up mempools */
689 err = -ENOMEM; 683 err = -ENOMEM;
@@ -697,12 +691,8 @@ static struct ceph_fs_client *create_fs_client(struct ceph_mount_options *fsopt,
697 691
698fail_cap_wq: 692fail_cap_wq:
699 destroy_workqueue(fsc->cap_wq); 693 destroy_workqueue(fsc->cap_wq);
700fail_trunc_wq: 694fail_inode_wq:
701 destroy_workqueue(fsc->trunc_wq); 695 destroy_workqueue(fsc->inode_wq);
702fail_pg_inv_wq:
703 destroy_workqueue(fsc->pg_inv_wq);
704fail_wb_wq:
705 destroy_workqueue(fsc->wb_wq);
706fail_client: 696fail_client:
707 ceph_destroy_client(fsc->client); 697 ceph_destroy_client(fsc->client);
708fail: 698fail:
@@ -715,9 +705,7 @@ fail:
715 705
716static void flush_fs_workqueues(struct ceph_fs_client *fsc) 706static void flush_fs_workqueues(struct ceph_fs_client *fsc)
717{ 707{
718 flush_workqueue(fsc->wb_wq); 708 flush_workqueue(fsc->inode_wq);
719 flush_workqueue(fsc->pg_inv_wq);
720 flush_workqueue(fsc->trunc_wq);
721 flush_workqueue(fsc->cap_wq); 709 flush_workqueue(fsc->cap_wq);
722} 710}
723 711
@@ -725,9 +713,7 @@ static void destroy_fs_client(struct ceph_fs_client *fsc)
725{ 713{
726 dout("destroy_fs_client %p\n", fsc); 714 dout("destroy_fs_client %p\n", fsc);
727 715
728 destroy_workqueue(fsc->wb_wq); 716 destroy_workqueue(fsc->inode_wq);
729 destroy_workqueue(fsc->pg_inv_wq);
730 destroy_workqueue(fsc->trunc_wq);
731 destroy_workqueue(fsc->cap_wq); 717 destroy_workqueue(fsc->cap_wq);
732 718
733 mempool_destroy(fsc->wb_pagevec_pool); 719 mempool_destroy(fsc->wb_pagevec_pool);