ext4: Document an edge case for overwrites
authorRitesh Harjani (IBM) <ritesh.list@gmail.com>
Thu, 15 May 2025 19:50:49 +0000 (01:20 +0530)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 20 May 2025 14:31:12 +0000 (10:31 -0400)
ext4_iomap_overwrite_begin() clears the flag for IOMAP_WRITE before
calling ext4_iomap_begin(). Document this above ext4_map_blocks() call
as it is easy to miss it when focusing on write paths alone.

Reviewed-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Acked-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Link: https://patch.msgid.link/fd50ba05440042dff77d555e463a620a79f8d0e9.1747337952.git.ritesh.list@gmail.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/inode.c

index 6c56735df4cb614314955b83742ce726353a5e49..9f3b3db14eda5f873995c722b93e55477ca984c3 100644 (file)
@@ -3490,6 +3490,10 @@ static int ext4_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
                }
                ret = ext4_iomap_alloc(inode, &map, flags);
        } else {
+               /*
+                * This can be called for overwrites path from
+                * ext4_iomap_overwrite_begin().
+                */
                ret = ext4_map_blocks(NULL, inode, &map, 0);
        }