Re: [PATCH v1 7/9] ext4: stop using VFS for dirty superblockmanagement

From: Artem Bityutskiy
Date: Wed Mar 21 2012 - 04:24:28 EST


On Tue, 2012-03-20 at 16:41 +0200, Artem Bityutskiy wrote:
> + INIT_DELAYED_WORK(&sbwork->dwork, write_super);
> + sbwork->sb = sb;
> + delay = msecs_to_jiffies(dirty_writeback_interval * 10);
> + queue_delayed_work(sbi->dio_unwritten_wq, &sbwork->dwork, delay);

I've just realized that the side-effect of using DIO workqueue is that
'syncfs()' will also synchronize the superblock because it flushes the
workqueue:

static int ext4_sync_fs(struct super_block *sb, int wait)
{
...
flush_workqueue(sbi->dio_unwritten_wq);
...
}

But before my change, it seems the superblock was not flushed on
'syncfs()', at least I do no see how this would be done. However, I
think it is OK because I think it is correct to write the dirty
superblock out on 'syncfs()', right?

--
Best Regards,
Artem Bityutskiy

Attachment: signature.asc
Description: This is a digitally signed message part