From: sashiko-bot@kernel.org
To: "Jiale Yao" <yaojiale02@163.com>
Cc: linux-ext4@vger.kernel.org, tytso@mit.edu
Subject: Re: [PATCH 1/3] ext2: drain in-flight DIO before buffered write fallback
Date: Thu, 24 Sep 2026 11:13:29 +0000 [thread overview]
Message-ID: <20260924111329.AC1C91F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260924110544.601390-2-yaojiale02@163.com>
> An asynchronous direct write can remain in flight after the inode lock is
> released. If another direct write falls back to buffered I/O while the
> first write is still pending, generic_perform_write() can dirty pages
> before the first write completes its post-I/O page cache invalidation.
> The invalidation then finds dirty pages, reports a page cache invalidation
> failure, and records -EIO in the mapping error sequence. A later fsync()
> therefore returns -EIO.
>
> Commit 15cdefd0c0522f9d5e12d947fa04f4c11649b699 ("ext4: drain
> in-flight DIO before buffered write fallback") fixed the same race in
> ext4. Ext2 has an equivalent fallback after iomap_dio_rw() returns
> -ENOTBLK or a short write, but does not drain other in-flight DIO before
> dirtying the page cache.
>
> Wait for in-flight DIO before calling generic_perform_write() in the
> fallback path.
>
> A reproducer using concurrent AIO direct writes and buffered fallback
> triggered the following warning and made a subsequent fsync() return
> -EIO:
>
> Page cache invalidation failure on direct I/O. Possible data corruption
> due to collision with buffered I/O!
>
> Fixes: fb5de4358e1a ("ext2: Move direct-io to use iomap")
> Link: https://lore.kernel.org/r/20260629113827.4074335-3-libaokun@linux.alibaba.com
> Signed-off-by: Jiale Yao <yaojiale02@163.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260924110544.601390-1-yaojiale02@163.com?part=1
next prev parent reply other threads:[~2026-09-24 11:13 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 11:05 [PATCH 0/3] fs: drain in-flight DIO before buffered write fallback Jiale Yao
2026-09-24 11:05 ` [PATCH 1/3] ext2: " Jiale Yao
2026-09-24 11:13 ` sashiko-bot [this message]
2026-09-24 11:05 ` [PATCH 2/3] ntfs: " Jiale Yao
2026-09-24 11:21 ` sashiko-bot
2026-09-24 12:04 ` liubaolin
2026-09-24 12:20 ` jiale yao
2026-09-26 7:29 ` jiale yao
2026-09-24 11:05 ` [PATCH 3/3] exfat: " Jiale Yao
2026-09-24 11:15 ` sashiko-bot
[not found] <20260924105125.577714-1-yaojiale02@163.com>
2026-09-24 10:51 ` [PATCH 1/3] ext2: " Jiale Yao
2026-09-24 11:02 ` sashiko-bot
2026-09-24 12:48 ` Jan Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260924111329.AC1C91F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=tytso@mit.edu \
--cc=yaojiale02@163.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.