linux-stable/fs/gfs2
Bob Peterson a31b4ec539 Revert "gfs2: eliminate tr_num_revoke_rm"
This reverts commit e955537e32.

Before patch e955537e32, tr_num_revoke tracked the number of revokes
added to the transaction, and tr_num_revoke_rm tracked how many
revokes were removed. But since revokes are queued off the sdp
(superblock) pointer, some transactions could remove more revokes
than they added. (e.g. revokes added by a different process).
Commit e955537e32 eliminated transaction variable tr_num_revoke_rm,
but in order to do so, it changed the accounting to always use
tr_num_revoke for its math. Since you can remove more revokes than
you add, tr_num_revoke could now become a negative value.
This negative value broke the assert in function gfs2_trans_end:

	if (gfs2_assert_withdraw(sdp, (nbuf <=3D tr->tr_blocks) &&
			       (tr->tr_num_revoke <=3D tr->tr_revokes)))

One way to fix this is to simply remove the tr_num_revoke clause
from the assert and allow the value to become negative. Andreas
didn't like that idea, so instead, we decided to revert e955537e32.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
2020-01-28 15:04:53 +01:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +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
acl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
acl.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
aops.c gfs2: minor cleanup: remove unneeded variable ret in gfs2_jdata_writepage 2020-01-08 10:39:57 -06:00
aops.h gfs2: mark stuffed_readpage static 2019-07-03 14:45:18 +02:00
bmap.c GFS2 changes for this merge window: 2019-12-05 13:20:11 -08: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 fs/gfs2: remove unused IS_DINODE and IS_LEAF macros 2020-01-21 11:19:38 +01: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 changes for this merge window: 2019-12-05 13:20:11 -08:00
gfs2.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
glock.c gfs2: Remove GFS2_MIN_LVB_SIZE define 2020-01-20 08:46:53 +01:00
glock.h gfs2: Use async glocks for rename 2019-09-04 20:22:17 +02:00
glops.c gfs2: eliminate ssize parameter from gfs2_struct2blk 2020-01-07 18:46:06 +01:00
glops.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
incore.h Revert "gfs2: eliminate tr_num_revoke_rm" 2020-01-28 15:04:53 +01:00
inode.c gfs2: Avoid access time thrashing in gfs2_inode_lookup 2020-01-15 15:20:07 +01:00
inode.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
lock_dlm.c gfs2: Fix recovery slot bumping 2019-09-03 09:42:41 +02:00
log.c Revert "gfs2: eliminate tr_num_revoke_rm" 2020-01-28 15:04:53 +01:00
log.h gfs2: eliminate ssize parameter from gfs2_struct2blk 2020-01-07 18:46:06 +01:00
lops.c gfs2: eliminate ssize parameter from gfs2_struct2blk 2020-01-07 18:46:06 +01:00
lops.h gfs2: Remove active journal side effect from gfs2_write_log_header 2019-11-12 15:17:53 +01:00
main.c SPDX update for 5.2-rc4 2019-06-08 12:52:42 -07:00
meta_io.c gfs2: Introduce function gfs2_withdrawn 2019-11-14 19:46:18 +01: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: eliminate ssize parameter from gfs2_struct2blk 2020-01-07 18:46:06 +01:00
quota.c gfs2: Introduce function gfs2_withdrawn 2019-11-14 19:46:18 +01:00
quota.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
recovery.c gfs2: Remove active journal side effect from gfs2_write_log_header 2019-11-12 15:17:53 +01:00
recovery.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
rgrp.c gfs2: remove unused LBIT macros 2020-01-21 11:19:45 +01:00
rgrp.h gfs2: dump fsid when dumping glock problems 2019-06-27 21:27:43 +02:00
super.c gfs2: Abort gfs2_freeze if io error is seen 2019-11-15 17:57:30 +01:00
super.h gfs2: Convert gfs2 to fs_context 2019-09-18 22:47:05 -04:00
sys.c gfs2: Introduce function gfs2_withdrawn 2019-11-14 19:46:18 +01: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 Revert "gfs2: eliminate tr_num_revoke_rm" 2020-01-28 15:04:53 +01:00
trans.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
util.c gfs2: Introduce function gfs2_withdrawn 2019-11-14 19:46:18 +01:00
util.h gfs2: Introduce function gfs2_withdrawn 2019-11-14 19:46:18 +01:00
xattr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
xattr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00