linux-stable/fs/iomap
Jan Kara f550ee9b85 iomap: Do not create fake iter in iomap_dio_bio_actor()
iomap_dio_bio_actor() copies iter to a local variable and then limits it
to a file extent we have mapped. When IO is submitted,
iomap_dio_bio_actor() advances the original iter while the copied iter
is advanced inside bio_iov_iter_get_pages(). This logic is non-obvious
especially because both iters still point to same shared structures
(such as pipe info) so if iov_iter_advance() changes anything in the
shared structure, this scheme breaks. Let's just truncate and reexpand
the original iter as needed instead of playing games with copying iters
and keeping them in sync.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2019-11-26 09:28:47 -08:00
..
apply.c iomap: trace iomap_appply results 2019-11-22 08:36:00 -08:00
buffered-io.c iomap: Fix overflow in iomap_page_mkwrite 2019-11-07 07:28:18 -08:00
direct-io.c iomap: Do not create fake iter in iomap_dio_bio_actor() 2019-11-26 09:28:47 -08:00
fiemap.c iomap: iomap_bmap should check iomap_apply return value 2019-11-08 07:44:12 -08:00
Makefile iomap: lift common tracing code from xfs to iomap 2019-10-21 08:51:59 -07:00
seek.c iomap: use a srcmap for a read-modify-write I/O 2019-10-21 08:51:59 -07:00
swapfile.c iomap: use a srcmap for a read-modify-write I/O 2019-10-21 08:51:59 -07:00
trace.c iomap: lift common tracing code from xfs to iomap 2019-10-21 08:51:59 -07:00
trace.h iomap: trace iomap_appply results 2019-11-22 08:36:00 -08:00