iomap: share iomap_unshare_iter predicate code with fsdax
authorDarrick J. Wong <djwong@kernel.org>
Thu, 3 Oct 2024 15:09:16 +0000 (08:09 -0700)
committerChristian Brauner <brauner@kernel.org>
Mon, 7 Oct 2024 11:51:47 +0000 (13:51 +0200)
commit6ef6a0e821d3dad6bf8a5d5508762dba9042c84b
tree232a6fe656e8d4821decbf14a923d92a3fe7ac26
parentb8c4076db5fd24b3be047e033b1098a5366db2fc
iomap: share iomap_unshare_iter predicate code with fsdax

The predicate code that iomap_unshare_iter uses to decide if it's really
needs to unshare a file range mapping should be shared with the fsdax
version, because right now they're opencoded and inconsistent.

Note that we simplify the predicate logic a bit -- we no longer allow
unsharing of inline data mappings, but there aren't any filesystems that
allow shared inline data currently.

This is a fix in the sense that it should have been ported to fsdax.

Fixes: b53fdb215d13 ("iomap: improve shared block detection in iomap_unshare_iter")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Link: https://lore.kernel.org/r/172796813294.1131942.15762084021076932620.stgit@frogsfrogsfrogs
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/dax.c
fs/iomap/buffered-io.c
include/linux/iomap.h