]> git.itanic.dy.fi Git - linux-stable/commit
filemap: add a per-mapping stable writes flag
authorChristoph Hellwig <hch@lst.de>
Wed, 25 Oct 2023 14:10:17 +0000 (16:10 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 20 Nov 2023 14:05:18 +0000 (15:05 +0100)
commit762321dab9a72760bf9aec48362f932717c9424d
tree6cb7941e06339347f4ac6204b461540f0f44b83a
parent66917f85db6002ed09cd24186258892fcfca64b6
filemap: add a per-mapping stable writes flag

folio_wait_stable waits for writeback to finish before modifying the
contents of a folio again, e.g. to support check summing of the data
in the block integrity code.

Currently this behavior is controlled by the SB_I_STABLE_WRITES flag
on the super_block, which means it is uniform for the entire file system.
This is wrong for the block device pseudofs which is shared by all
block devices, or file systems that can use multiple devices like XFS
witht the RT subvolume or btrfs (although btrfs currently reimplements
folio_wait_stable anyway).

Add a per-address_space AS_STABLE_WRITES flag to control the behavior
in a more fine grained way.  The existing SB_I_STABLE_WRITES is kept
to initialize AS_STABLE_WRITES to the existing default which covers
most cases.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20231025141020.192413-2-hch@lst.de
Tested-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/inode.c
include/linux/pagemap.h
mm/page-writeback.c