[<prev] [next>] [day] [month] [year] [list]
Message-id: <1763434694.90931448945457404.JavaMail.weblogic@epmlwas04c>
Date: Tue, 01 Dec 2015 04:50:58 +0000 (GMT)
From: Daeho Jeong <daeho.jeong@...sung.com>
To: Jan Kara <jack@...e.cz>
Cc: "tytso@....edu" <tytso@....edu>,
"linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>,
정대호 <daeho.jeong@...sung.com>
Subject: Re: [PATCH 2/3] ext4: remove incorrect check for inode journal mode in
ext4_writepages()
> Actually what you do only hides the real problem - that ext4_writepages()
> in non-journalled mode can be still running for an inode which is already
> switched to journalled mode. In theory if we manage to dirty some pages
> after the switch, non-journalled writepages *can* see them an try to write
> them back which will break spectacularly. So to fix this we need something
> like a writeback barrier for the inode - make sure all ext4_writepages()
> calls have completed before switching aops. Now I'd hate to grow struct
> ext4_inode_info only for this extra rare case so we could probably
> implement the barrier on per-filesystem basis - a fs-wide per-cpu rw
> semaphore acquired for reading while ext4_writepages() runs and acquired
> for writing when we switch aops for some inode.
Yes, there is another issue that newly dirtied pages after the switch can be
shown in ext4_writepages() in non-journalled mode. I overlooked that point.
According to your comment, I will modify this patch.
Thank you, again.
Powered by blists - more mailing lists