Subject: Re: linux-next: manual merge of the ext4 tree with Linus' tree

From: Ted Ts'o <[email-masked]>
Date: Fri, 25 Mar 2011 15:58:56 -0400

On Fri, Mar 25, 2011 at 03:45:44PM +0100, Tejun Heo wrote:
> Both are about the same conversion but the one using alloc_workqueue()
> is better because 1. create_singlethread_workqueue() is going away and
> 2. it doesn't require strict ordering among queued works.
> 
> Ted, what do you think?

Agreed.  And it looks like Linus agreed as well:

diff --cc fs/ext4/super.c
index 203f9e4,ccfa686..22546ad
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@@ -3511,12 -3514,7 +3516,12 @@@ static int ext4_fill_super(struct super
        percpu_counter_set(&sbi->s_dirtyblocks_counter, 0);
  
  no_journal:
 -      EXT4_SB(sb)->dio_unwritten_wq = create_singlethread_workqueue("ext4-dio-
 +      /*
 +       * 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);
++              alloc_workqueue("ext4-dio-unwritten", WQ_MEM_RECLAIM | WQ_UNBOUND, 1);
        if (!EXT4_SB(sb)->dio_unwritten_wq) {
                printk(KERN_ERR "EXT4-fs: failed to create DIO workqueue\n");
                goto failed_mount_wq;

						- Ted