[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <166975630697.2135297.10209303433796955869.b4-ty@mit.edu>
Date: Tue, 29 Nov 2022 16:12:15 -0500
From: "Theodore Ts'o" <tytso@....edu>
To: linux-ext4@...r.kernel.org, Zhang Yi <yi.zhang@...wei.com>
Cc: "Theodore Ts'o" <tytso@....edu>, jack@...e.cz, yukuai3@...wei.com,
adilger.kernel@...ger.ca
Subject: Re: [PATCH v3 1/2] ext4: silence the warning when evicting inode with dioread_nolock
On Wed, 29 Jun 2022 19:26:46 +0800, Zhang Yi wrote:
> When evicting an inode with default dioread_nolock, it could be raced by
> the unwritten extents converting kworker after writeback some new
> allocated dirty blocks. It convert unwritten extents to written, the
> extents could be merged to upper level and free extent blocks, so it
> could mark the inode dirty again even this inode has been marked
> I_FREEING. But the inode->i_io_list check and warning in
> ext4_evict_inode() missing this corner case. Fortunately,
> ext4_evict_inode() will wait all extents converting finished before this
> check, so it will not lead to inode use-after-free problem, every thing
> is OK besides this warning. The WARN_ON_ONCE was originally designed
> for finding inode use-after-free issues in advance, but if we add
> current dioread_nolock case in, it will become not quite useful, so fix
> this warning by just remove this check.
>
> [...]
Applied, thanks!
[1/2] ext4: silence the warning when evicting inode with dioread_nolock
commit: bc12ac98ea2e1b70adc6478c8b473a0003b659d3
[2/2] ext4: check and assert if marking an no_delete evicting inode dirty
commit: 318cdc822c63b6e2befcfdc2088378ae6fa18def
Best regards,
--
Theodore Ts'o <tytso@....edu>
Powered by blists - more mailing lists