On Thu, Jan 23, 2025 at 06:18:01AM -0700, Jens Axboe wrote: > blkdev_read_iter() has a few odd checks, like gating the position and > count adjustment on whether or not the result is bigger-than-or-equal to > zero (where bigger than makes more sense), and not checking the return > value of blkdev_direct_IO() before doing an iov_iter_revert(). The > latter can lead to attempting to revert with a negative value, which > when passed to iov_iter_revert() as an unsigned value will lead to > throwing a WARN_ON() because unroll is bigger than MAX_RW_COUNT. How did you reproduce that? Can we add it to blktests? Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>