linux/fs/gfs2
Bob Peterson b839dadae8 gfs2: new slab for transactions
This patch adds a new slab for gfs2 transactions. That allows us to
reduce kernel memory fragmentation, have better organization of data
for analysis of vmcore dumps. A new centralized function is added to
free the slab objects, and it exposes use-after-free by giving
warnings if a transaction is freed while it still has bd elements
attached to its buffers or ail lists. We make sure to initialize
those transaction ail lists so we can check their integrity when freeing.

At a later time, we should add a slab initialization function to
make it more efficient, but for this initial patch I wanted to
minimize the impact.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
2020-06-05 21:24:25 +02:00
..
acl.c gfs2: Change inode qa_data to allow multiple users 2020-03-27 14:08:04 -05:00
acl.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
aops.c gfs2: don't allow releasepage to free bd still used for revokes 2020-02-27 07:53:18 -06:00
aops.h gfs2: mark stuffed_readpage static 2019-07-03 14:45:18 +02:00
bmap.c gfs2: Another gfs2_walk_metadata fix 2020-05-08 15:15:12 +02:00
bmap.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
dentry.c gfs2: untangle the logic in gfs2_drevalidate 2019-09-03 09:42:41 +02:00
dir.c gfs2: leaf_dealloc needs to allocate one more revoke 2020-02-27 07:53:18 -06:00
dir.h gfs2: Delete an unnecessary check before brelse() 2019-09-04 20:22:17 +02:00
export.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
file.c gfs2: Remove unnecessary gfs2_qa_{get,put} pairs 2020-03-27 14:08:05 -05:00
gfs2.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
glock.c gfs2: introduce new gfs2_glock_assert_withdraw 2020-06-05 16:44:29 +02:00
glock.h gfs2: introduce new gfs2_glock_assert_withdraw 2020-06-05 16:44:29 +02:00
glops.c gfs2: initialize transaction tr_ailX_lists earlier 2020-06-05 21:24:25 +02:00
glops.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
incore.h gfs2: Change inode qa_data to allow multiple users 2020-03-27 14:08:04 -05:00
inode.c gfs2: Only do glock put in gfs2_create_inode for free inodes 2020-06-02 21:23:55 +02:00
inode.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
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: new slab for transactions 2020-06-05 21:24:25 +02:00
log.h gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty 2020-02-27 07:53:18 -06:00
lops.c gfs2: Even more gfs2_find_jhead fixes 2020-05-29 17:00:24 +02:00
lops.h gfs2: Remove active journal side effect from gfs2_write_log_header 2019-11-12 15:17:53 +01:00
main.c gfs2: new slab for transactions 2020-06-05 21:24:25 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
meta_io.c gfs2: fix withdraw sequence deadlock 2020-05-06 21:25:26 +02:00
meta_io.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
ops_fstype.c gfs2: Allow lock_nolock mount to specify jid=X 2020-06-02 19:45:05 +02:00
quota.c gfs2: don't call quota_unhold if quotas are not locked 2020-05-08 18:49:04 +02:00
quota.h gfs2: move privileged user check to gfs2_quota_lock_check 2020-05-08 18:47:58 +02:00
recovery.c gfs2: change from write to read lock for sd_log_flush_lock in journal replay 2020-03-27 14:08:05 -05:00
recovery.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
rgrp.c gfs2: don't lock sd_log_flush_lock in try_rgrp_unlink 2020-03-27 14:08:05 -05: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: Fix problems regarding gfs2_qa_get and _put 2020-05-08 18:45:11 +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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
trace_gfs2.h gfs2: eliminate rs_inum and reduce the size of gfs2 inodes 2018-06-21 07:39:31 -05:00
trans.c gfs2: new slab for transactions 2020-06-05 21:24:25 +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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00