summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-03-06 13:00:18 +0300
committerChristian Brauner <brauner@kernel.org>2025-03-06 13:00:18 +0300
commitc7be0d72d5514caf0a64763d6c7a5503fb16acf1 (patch)
treede135086708083b658030fa37321bd5616acd373 /include
parent1743d385e704c41ef028697ef44eeab987d5f5a2 (diff)
parent786e3080cbe916f6a4c0987124d4f930c1814a97 (diff)
downloadlinux-c7be0d72d5514caf0a64763d6c7a5503fb16acf1.tar.xz
Merge patch series "iomap preliminaries for large atomic write for xfs with CoW"
Bring in the iomap changes required for xfs to support large atomic write with CoW. * patches from https://lore.kernel.org/r/20250303171120.2837067-1-john.g.garry@oracle.com: iomap: Lift blocksize restriction on atomic writes iomap: Support SW-based atomic writes iomap: Rename IOMAP_ATOMIC -> IOMAP_ATOMIC_HW Link: https://lore.kernel.org/r/20250303171120.2837067-1-john.g.garry@oracle.com Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/iomap.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/iomap.h b/include/linux/iomap.h
index ea29388b2fba..9cd93530013c 100644
--- a/include/linux/iomap.h
+++ b/include/linux/iomap.h
@@ -189,8 +189,9 @@ struct iomap_folio_ops {
#else
#define IOMAP_DAX 0
#endif /* CONFIG_FS_DAX */
-#define IOMAP_ATOMIC (1 << 9)
+#define IOMAP_ATOMIC_HW (1 << 9) /* HW-based torn-write protection */
#define IOMAP_DONTCACHE (1 << 10)
+#define IOMAP_ATOMIC_SW (1 << 11)/* SW-based torn-write protection */
struct iomap_ops {
/*
@@ -502,6 +503,11 @@ struct iomap_dio_ops {
*/
#define IOMAP_DIO_PARTIAL (1 << 2)
+/*
+ * Use software-based torn-write protection.
+ */
+#define IOMAP_DIO_ATOMIC_SW (1 << 3)
+
ssize_t iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter,
const struct iomap_ops *ops, const struct iomap_dio_ops *dops,
unsigned int dio_flags, void *private, size_t done_before);