linux_dsm_epyc7002/fs/gfs2
Bob Peterson b14c94908b Revert "gfs2: Don't demote a glock until its revokes are written"
This reverts commit df5db5f9ee.

This patch fixes a regression: patch df5db5f9ee allowed function
run_queue() to bypass its call to do_xmote() if revokes were queued for
the glock. That's wrong because its call to do_xmote() is what is
responsible for calling the go_sync() glops functions to sync both
the ail list and any revokes queued for it. By bypassing the call,
gfs2 could get into a stand-off where the glock could not be demoted
until its revokes are written back, but the revokes would not be
written back because do_xmote() was never called.

It "sort of" works, however, because there are other mechanisms like
the log flush daemon (logd) that can sync the ail items and revokes,
if it deems it necessary. The problem is: without file system pressure,
it might never deem it necessary.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
2020-05-08 15:01:25 -05:00
..
acl.c gfs2: Change inode qa_data to allow multiple users 2020-03-27 14:08:04 -05:00
acl.h
aops.c gfs2: don't allow releasepage to free bd still used for revokes 2020-02-27 07:53:18 -06:00
aops.h
bmap.c gfs2: Another gfs2_walk_metadata fix 2020-05-08 15:15:12 +02:00
bmap.h
dentry.c
dir.c gfs2: leaf_dealloc needs to allocate one more revoke 2020-02-27 07:53:18 -06:00
dir.h
export.c
file.c gfs2: Remove unnecessary gfs2_qa_{get,put} pairs 2020-03-27 14:08:05 -05:00
gfs2.h
glock.c Revert "gfs2: Don't demote a glock until its revokes are written" 2020-05-08 15:01:25 -05:00
glock.h
glops.c gfs2: Do proper error checking for go_sync family of glops functions 2020-02-27 07:53:18 -06:00
glops.h
incore.h gfs2: Change inode qa_data to allow multiple users 2020-03-27 14:08:04 -05:00
inode.c gfs2: Fix problems regarding gfs2_qa_get and _put 2020-05-08 18:45:11 +02:00
inode.h
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: Grab glock reference sooner in gfs2_add_revoke 2020-05-08 18:49:04 +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: More gfs2_find_jhead fixes 2020-05-08 15:15:12 +02:00
lops.h
main.c
Makefile
meta_io.c gfs2: fix withdraw sequence deadlock 2020-05-06 21:25:26 +02:00
meta_io.h
ops_fstype.c We've got a lot of patches (39) for this merge window. Most of these patches 2020-03-31 14:16:03 -07: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
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
trace_gfs2.h
trans.c gfs2: drain the ail2 list after io errors 2020-02-27 07:53:18 -06:00
trans.h
util.c gfs2: Fix BUG during unmount after file system withdraw 2020-05-08 15:13:27 +02:00
util.h gfs2: flesh out delayed withdraw for gfs2_log_flush 2020-02-27 07:53:18 -06:00
xattr.c gfs2: Change inode qa_data to allow multiple users 2020-03-27 14:08:04 -05:00
xattr.h