aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_super.c')
-rw-r--r--fs/xfs/xfs_super.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 06d23b976f4c..5484888d39c4 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -1607,12 +1607,28 @@ xfs_init_workqueues(void)
1607 xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_NON_REENTRANT, 0); 1607 xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_NON_REENTRANT, 0);
1608 if (!xfs_syncd_wq) 1608 if (!xfs_syncd_wq)
1609 return -ENOMEM; 1609 return -ENOMEM;
1610
1611 /*
1612 * The allocation workqueue can be used in memory reclaim situations
1613 * (writepage path), and parallelism is only limited by the number of
1614 * AGs in all the filesystems mounted. Hence use the default large
1615 * max_active value for this workqueue.
1616 */
1617 xfs_alloc_wq = alloc_workqueue("xfsalloc", WQ_MEM_RECLAIM, 0);
1618 if (!xfs_alloc_wq)
1619 goto out_destroy_syncd;
1620
1610 return 0; 1621 return 0;
1622
1623out_destroy_syncd:
1624 destroy_workqueue(xfs_syncd_wq);
1625 return -ENOMEM;
1611} 1626}
1612 1627
1613STATIC void 1628STATIC void
1614xfs_destroy_workqueues(void) 1629xfs_destroy_workqueues(void)
1615{ 1630{
1631 destroy_workqueue(xfs_alloc_wq);
1616 destroy_workqueue(xfs_syncd_wq); 1632 destroy_workqueue(xfs_syncd_wq);
1617} 1633}
1618 1634