[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZH33ZzwyLFY48tfA@casper.infradead.org>
Date: Mon, 5 Jun 2023 15:55:35 +0100
From: Matthew Wilcox <willy@...radead.org>
To: Jan Kara <jack@...e.cz>
Cc: Theodore Ts'o <tytso@....edu>, Baokun Li <libaokun1@...wei.com>,
linux-ext4@...r.kernel.org, adilger.kernel@...ger.ca,
ritesh.list@...il.com, linux-kernel@...r.kernel.org,
jun.nie@...aro.org, ebiggers@...nel.org, yi.zhang@...wei.com,
yangerkun@...wei.com, yukuai3@...wei.com,
syzbot+a158d886ca08a3fecca4@...kaller.appspotmail.com,
stable@...r.kernel.org
Subject: Re: [PATCH v2] ext4: fix race condition between buffer write and
page_mkwrite
On Mon, Jun 05, 2023 at 02:21:41PM +0200, Jan Kara wrote:
> On Mon 05-06-23 11:16:55, Jan Kara wrote:
> > Yeah, I agree, that is also the conclusion I have arrived at when thinking
> > about this problem now. We should be able to just remove the conversion
> > from ext4_page_mkwrite() and rely on write(2) or truncate(2) doing it when
> > growing i_size.
>
> OK, thinking more about this and searching through the history, I've
> realized why the conversion is originally in ext4_page_mkwrite(). The
> problem is described in commit 7b4cc9787fe35b ("ext4: evict inline data
> when writing to memory map") but essentially it boils down to the fact that
> ext4 writeback code does not expect dirty page for a file with inline data
> because ext4_write_inline_data_end() should have copied the data into the
> inode and cleared the folio's dirty flag.
>
> Indeed messing with xattrs from the writeback path to copy page contents
> into inline data xattr would be ... interesting. Hum, out of good ideas for
> now :-|.
Is it so bad? Now that we don't have writepage in ext4, only
writepages, it seems like we have a considerably more benign locking
environment to work in.
Powered by blists - more mailing lists