kernel-hacking-2024-linux-s.../fs/gfs2
Bob Peterson 462582b99b gfs2: add some much needed cleanup for log flushes that fail
When a log flush fails due to io errors, it signals the failure but does
not clean up after itself very well. This is because buffers are added to
the transaction tr_buf and tr_databuf queue, but the io error causes
gfs2_log_flush to bypass the "after_commit" functions responsible for
dequeueing the bd elements. If the bd elements are added to the ail list
before the error, function ail_drain takes care of dequeueing them.
But if they haven't gotten that far, the elements are forgotten and
make the transactions unable to be freed.

This patch introduces new function trans_drain which drains the bd
elements from the transaction so they can be freed properly.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
2020-08-24 13:54:07 +02:00
..
acl.c gfs2: Change inode qa_data to allow multiple users 2020-03-27 14:08:04 -05:00
acl.h
aops.c Remove uninitialized_var() macro for v5.9-rc1 2020-08-04 13:49:43 -07:00
aops.h
bmap.c Changes in gfs2: 2020-08-10 18:22:43 -07:00
bmap.h
dentry.c
dir.c mm: remove the pgprot argument to __vmalloc 2020-06-02 10:59:11 -07:00
dir.h
export.c gfs2: Minor gfs2_lookup_by_inum cleanup 2020-06-05 20:19:21 +02:00
file.c Changes in gfs2: 2020-08-10 18:22:43 -07:00
gfs2.h
glock.c gfs2: Fix refcount leak in gfs2_glock_poke 2020-08-03 13:45:37 +02:00
glock.h Merge branch 'gfs2-iopen' into for-next 2020-06-05 21:25:36 +02:00
glops.c gfs2: freeze should work on read-only mounts 2020-07-03 12:05:35 +02:00
glops.h
incore.h gfs2: eliminate GIF_ORDERED in favor of list_empty 2020-07-03 12:05:34 +02:00
inode.c gfs2: Don't return NULL from gfs2_inode_lookup 2020-06-30 13:04:45 +02:00
inode.h gfs2: Minor gfs2_lookup_by_inum cleanup 2020-06-05 20:19:21 +02:00
Kconfig
lock_dlm.c gfs2: Force withdraw to replay journals and wait for it to finish 2020-02-27 07:53:12 -06:00
log.c gfs2: add some much needed cleanup for log flushes that fail 2020-08-24 13:54:07 +02:00
log.h gfs2: eliminate GIF_ORDERED in favor of list_empty 2020-07-03 12:05:34 +02:00
lops.c treewide: Remove uninitialized_var() usage 2020-07-16 12:35:15 -07:00
lops.h
main.c gfs2: eliminate GIF_ORDERED in favor of list_empty 2020-07-03 12:05:34 +02:00
Makefile
meta_io.c gfs2: fix withdraw sequence deadlock 2020-05-06 21:25:26 +02:00
meta_io.h
ops_fstype.c gfs2: The freeze glock should never be frozen 2020-07-03 12:05:35 +02:00
quota.c mm: remove the pgprot argument to __vmalloc 2020-06-02 10:59:11 -07:00
quota.h gfs2: move privileged user check to gfs2_quota_lock_check 2020-05-08 18:47:58 +02:00
recovery.c gfs2: When freezing gfs2, use GL_EXACT and not GL_NOCACHE 2020-07-03 12:05:35 +02:00
recovery.h
rgrp.c gfs2: Turn gl_delete into a delayed work 2020-06-05 20:19:21 +02:00
rgrp.h gfs2: Split gfs2_rsqa_delete into gfs2_rs_delete and gfs2_qa_put 2020-03-27 14:08:04 -05:00
super.c gfs2: When gfs2_dirty_inode gets a glock error, dump the glock 2020-08-07 17:26:24 +02:00
super.h gfs2: Force withdraw to replay journals and wait for it to finish 2020-02-27 07:53:12 -06:00
sys.c gfs2: Force withdraw to replay journals and wait for it to finish 2020-02-27 07:53:12 -06:00
sys.h
trace_gfs2.h
trans.c gfs2: add some much needed cleanup for log flushes that fail 2020-08-24 13:54:07 +02:00
trans.h gfs2: new slab for transactions 2020-06-05 21:24:25 +02:00
util.c gfs2: new slab for transactions 2020-06-05 21:24:25 +02:00
util.h gfs2: new slab for transactions 2020-06-05 21:24:25 +02:00
xattr.c gfs2: Change inode qa_data to allow multiple users 2020-03-27 14:08:04 -05:00
xattr.h