From: Matthew Wilcox (Oracle) Date: Tue, 21 Dec 2021 04:44:50 +0000 (+0000) Subject: iomap: Fix error handling in iomap_zero_iter() X-Git-Tag: v6.6.17~8422^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9e05e95ca8dae8de4a7a1645014e1bbd9c8a4dab;p=platform%2Fkernel%2Flinux-rpi.git iomap: Fix error handling in iomap_zero_iter() iomap_write_end() does not return a negative errno to indicate an error, but the number of bytes successfully copied. It cannot return an error today, so include a debugging assertion like the one in iomap_unshare_iter(). Fixes: c6f40468657d ("fsdax: decouple zeroing from the iomap buffered I/O code") Reported-by: Dan Carpenter Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Christoph Hellwig Link: https://lore.kernel.org/r/20211221044450.517558-1-willy@infradead.org Signed-off-by: Dan Williams --- diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index ac040d6..49279df 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -895,8 +895,8 @@ static loff_t iomap_zero_iter(struct iomap_iter *iter, bool *did_zero) mark_page_accessed(page); bytes = iomap_write_end(iter, pos, bytes, bytes, page); - if (bytes < 0) - return bytes; + if (WARN_ON_ONCE(bytes == 0)) + return -EIO; pos += bytes; length -= bytes;