diff options
author | Ritesh Harjani (IBM) <ritesh.list@gmail.com> | 2025-04-12 10:06:34 +0530 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2025-04-15 10:30:48 +0200 |
commit | 336bac5e0892d0a24b55e7569981e641b23aef9a (patch) | |
tree | 7281c6c538a387cf79d39eb0c39f9086b17473b9 | |
parent | 0af2f6be1b4281385b618cb86ad946eded089ac8 (diff) |
Documentation: iomap: Add missing flags description
Let's document the use of these flags in iomap design doc where other
flags are defined too -
- IOMAP_F_BOUNDARY was added by XFS to prevent merging of I/O and I/O
completions across RTG boundaries.
- IOMAP_F_ATOMIC_BIO was added for supporting atomic I/O operations
for filesystems to inform the iomap that it needs HW-offload based
mechanism for torn-write protection.
While we are at it, let's also fix the description of IOMAP_F_PRIVATE
flag after a recent:
commit 923936efeb74b3 ("iomap: Fix conflicting values of iomap flags")
Signed-off-by: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>
Link: https://lore.kernel.org/8d8534a704c4f162f347a84830710db32a927b2e.1744432270.git.ritesh.list@gmail.com
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r-- | Documentation/filesystems/iomap/design.rst | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Documentation/filesystems/iomap/design.rst b/Documentation/filesystems/iomap/design.rst index e29651a42eec..f2df9b6df988 100644 --- a/Documentation/filesystems/iomap/design.rst +++ b/Documentation/filesystems/iomap/design.rst @@ -243,13 +243,25 @@ The fields are as follows: regular file data. This is only useful for FIEMAP. - * **IOMAP_F_PRIVATE**: Starting with this value, the upper bits can - be set by the filesystem for its own purposes. + * **IOMAP_F_BOUNDARY**: This indicates I/O and its completion must not be + merged with any other I/O or completion. Filesystems must use this when + submitting I/O to devices that cannot handle I/O crossing certain LBAs + (e.g. ZNS devices). This flag applies only to buffered I/O writeback; all + other functions ignore it. + + * **IOMAP_F_PRIVATE**: This flag is reserved for filesystem private use. * **IOMAP_F_ANON_WRITE**: Indicates that (write) I/O does not have a target block assigned to it yet and the file system will do that in the bio submission handler, splitting the I/O as needed. + * **IOMAP_F_ATOMIC_BIO**: This indicates write I/O must be submitted with the + ``REQ_ATOMIC`` flag set in the bio. Filesystems need to set this flag to + inform iomap that the write I/O operation requires torn-write protection + based on HW-offload mechanism. They must also ensure that mapping updates + upon the completion of the I/O must be performed in a single metadata + update. + These flags can be set by iomap itself during file operations. The filesystem should supply an ``->iomap_end`` function if it needs to observe these flags: |