From: Darrick J. Wong <djwong@xxxxxxxxxx> If iomap_iter::len is zero on the first call to iomap_iter(), we should just return zero instead of calling ->iomap_begin with zero count. This obviates the need for ->iomap_begin implementations to handle that "correctly" by not returning a zero-length mapping. Signed-off-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --- fs/iomap/iter.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/iomap/iter.c b/fs/iomap/iter.c index 6ffc6a7b9ba502..b86a6a08627126 100644 --- a/fs/iomap/iter.c +++ b/fs/iomap/iter.c @@ -66,8 +66,11 @@ int iomap_iter(struct iomap_iter *iter, const struct iomap_ops *ops) trace_iomap_iter(iter, ops, _RET_IP_); - if (!iter->iomap.length) + if (!iter->iomap.length) { + if (iter->len == 0) + return 0; goto begin; + } /* * Calculate how far the iter was advanced and the original length bytes