All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hongling Zeng <zhongling0719@126.com>
To: Christoph Hellwig <hch@infradead.org>,
	 Hongling Zeng <zenghongling@kylinos.cn>
Cc: cem@kernel.org, dchinner@redhat.com, linux-xfs@vger.kernel.org,
	 linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH] xfs: fix fallback data device flush for realtime inodes
Date: Wed, 29 Jul 2026 16:59:28 +0800	[thread overview]
Message-ID: <6A69C0F0.8010206@126.com> (raw)
In-Reply-To: <amm6-JkURolQqXDo@infradead.org>


在 2026年07月29日 16:34, Christoph Hellwig 写道:
> On Wed, Jul 29, 2026 at 03:39:18PM +0800, Hongling Zeng wrote:
>> xfs_file_fsync() has a fallback flush for the case where the log force
>> was a no-op, for example fdatasync/O_DSYNC overwrites of already
>> allocated file data with no metadata updates.
>>
>> The current fallback path is limited to non-realtime inodes and always
>> flushes mp->m_ddev_targp. This misses realtime inodes whose data target
>> is selected by the inode and may be mp->m_rtdev_targp.
> No.  The rt device is flushed before the called to xfs_fsync_flush_log,
> as we need to ensure that the data is flushed from the cache before
> the log commit.  For the data device, the REQ_PREFLUSH case takes
> care that.  After xfs_fsync_flush_log we only need to take care of
> the data device if the file is on the data device and the cache
> wasn't flushed as part of the log commit.
Thanks for the explanation.

I understand that for realtime inodes with a separate RT device, the RT
device is flushed before xfs_fsync_flush_log(), and therefore the
post-log fallback path is intentionally limited to data-device files.

The only case I was worried about is whether it is possible to have a
realtime inode while mp->m_rtdev_targp == mp->m_ddev_targp, i.e. the
realtime data target is effectively the data device. In that case both
the early RT-device flush and the post-log fallback appear to be skipped
when log_flushed == 0.

If such a configuration is impossible by design, then my patch is wrong.

Thanks for clarifying.


  reply	other threads:[~2026-07-29  9:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-29  7:39 [PATCH] xfs: fix fallback data device flush for realtime inodes Hongling Zeng
2026-07-29  8:34 ` Christoph Hellwig
2026-07-29  8:59   ` Hongling Zeng [this message]
2026-07-29 14:28     ` Christoph Hellwig

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=6A69C0F0.8010206@126.com \
    --to=zhongling0719@126.com \
    --cc=cem@kernel.org \
    --cc=dchinner@redhat.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=zenghongling@kylinos.cn \
    /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.