filemap: Fix bounds checking in filemap_read()
[ Upstream commit ace149e0 ] If the caller supplies an iocb->ki_pos value that is close to the filesystem upper limit, and an iterator with a count that causes us to overflow that limit, then filemap_read() enters an infinite loop. This behaviour was discovered when testing xfstests generic/525 with the "localio" optimisation for loopback NFS mounts. Reported-by:Mike Snitzer <snitzer@kernel.org> Fixes: c2a9737f ("vfs,mm: fix a dead loop in truncate_inode_pages_range()") Tested-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org> (cherry picked from commit ace149e0) [Harshit: Minor conflict resolved due to missing commit: 25d6a23e ("filemap: Convert filemap_get_read_batch() to use a folio_batch") in 5.15.y] Signed-off-by:
Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Loading
Please sign in to comment