gfs2: More gfs2_find_jhead fixes
authorAndreas Gruenbacher <agruenba@redhat.com>
Mon, 27 Apr 2020 23:15:41 +0000 (01:15 +0200)
committerAndreas Gruenbacher <agruenba@redhat.com>
Fri, 8 May 2020 13:15:12 +0000 (15:15 +0200)
commitaa83da7f47b26c9587bade6c4bc4736ffa308f0a
treeaf08b77d81b99274741281a46fc6e2b495948781
parent566a2ab3c9005f62e784bd39022d58d34ef4365c
gfs2: More gfs2_find_jhead fixes

It turns out that when extending an existing bio, gfs2_find_jhead fails to
check if the block number is consecutive, which leads to incorrect reads for
fragmented journals.

In addition, limit the maximum bio size to an arbitrary value of 2 megabytes:
since commit 07173c3ec276 ("block: enable multipage bvecs"), if we just keep
adding pages until bio_add_page fails, bios will grow much larger than useful,
which pins more memory than necessary with barely any additional performance
gains.

Fixes: f4686c26ecc3 ("gfs2: read journal in large chunks")
Cc: stable@vger.kernel.org # v5.2+
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
fs/gfs2/lops.c