|
@@ -3507,7 +3507,12 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
percpu_counter_set(&sbi->s_dirtyblocks_counter, 0);
|
|
|
|
|
|
no_journal:
|
|
|
- EXT4_SB(sb)->dio_unwritten_wq = create_workqueue("ext4-dio-unwritten");
|
|
|
+ /*
|
|
|
+ * The maximum number of concurrent works can be high and
|
|
|
+ * concurrency isn't really necessary. Limit it to 1.
|
|
|
+ */
|
|
|
+ EXT4_SB(sb)->dio_unwritten_wq =
|
|
|
+ alloc_workqueue("ext4-dio-unwritten", WQ_MEM_RECLAIM, 1);
|
|
|
if (!EXT4_SB(sb)->dio_unwritten_wq) {
|
|
|
printk(KERN_ERR "EXT4-fs: failed to create DIO workqueue\n");
|
|
|
goto failed_mount_wq;
|