summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/cgroup/lib/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2026-04-05 16:33:36 +0200
committerAndreas Gruenbacher <agruenba@redhat.com>2026-04-07 22:20:00 +0200
commitbb47cce7a1eea1d9d165260328270ddc39e19526 (patch)
treea1fdf3927c4535f3c8aa3a561632672c73486421 /tools/testing/selftests/cgroup/lib/git@git.tavy.me:linux.git
parentfe2c8d051150b90b3ccb85f89e3b1d636cb88ec8 (diff)
gfs2: gfs2_log_flush withdraw fixes
When a withdraw occurs in gfs2_log_flush() and we are left with an unsubmitted bio, fail that bio. Otherwise, the bh's in that bio will remain locked and gfs2_evict_inode() -> truncate_inode_pages() -> gfs2_invalidate_folio() -> gfs2_discard() will hang trying to discard the locked bh's. In addition, when gfs2_log_flush() fails to submit a new transaction, unpin the buffers in the failing transaction like gfs2_remove_from_journal() does. If any of the bd's are on the ail2 list, leave them there and do_withdraw() -> gfs2_withdraw_glocks() -> inode_go_inval() -> truncate_inode_pages() -> gfs2_invalidate_folio() -> gfs2_discard() will remove them. They will be freed in gfs2_release_folio(). Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'tools/testing/selftests/cgroup/lib/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions