gfs2: Prevent endless loops in gfs2_file_buffered_write
authorAndreas Gruenbacher <agruenba@redhat.com>
Tue, 9 Nov 2021 12:57:17 +0000 (13:57 +0100)
committerAndreas Gruenbacher <agruenba@redhat.com>
Wed, 10 Nov 2021 17:22:37 +0000 (18:22 +0100)
commit554c577cee95bdc1d03d9f457e57dc96eb791845
treef1398c44f51ab046d63f0ba2b7a5459203a693ff
parenta7ac203d8fd366bb6318f856466f52484c623d05
gfs2: Prevent endless loops in gfs2_file_buffered_write

Currently, instead of performing a short write,
iomap_file_buffered_write will fail when part of its iov iterator cannot
be read.  In contrast, gfs2_file_buffered_write will loop around if it
can read part of the iov iterator, so we can end up in an endless loop.

This should be fixed in iomap_file_buffered_write (and also
generic_perform_write), but this comes a bit late in the 5.16
development cycle, so work around it in the filesystem by
trimming the iov iterator to the known-good size for now.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/file.c