> @@ -353,9 +353,16 @@ static inline bool iomap_block_needs_zeroing(const
> struct iomap_iter *iter,
> {
> const struct iomap *srcmap = iomap_iter_srcmap(iter);
>
> - return srcmap->type != IOMAP_MAPPED ||
> - (srcmap->flags & IOMAP_F_NEW) ||
> - pos >= i_size_read(iter->inode);
> + if (srcmap->type != IOMAP_MAPPED)
> + return true;
> +
> + if (srcmap->flags & IOMAP_F_NEW)
> + return true;
> +
> + if (srcmap->flags & IOMAP_F_FSVERITY)
> + return false;
> +
> + return pos >= i_size_read(iter->inode);
This might be a good time to document the various reasons for needing
zeroing.
> +/*
> + * IO happens beyond inode EOF, fsverity metadata is stored there
> + */
> +#define IOMAP_F_FSVERITY (1U << 10)
This comment feels a bit too sparse. Here is my interpretation of what
this flag does:
/*
* Indicates reads and writes of fsverity metadata.
*
* Fsverity metadata is stored after the regular file data and thus beyond
* i_size.
*/
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel