linux/fs/gfs2
Bob Peterson 86934198ee gfs2: Clear flags when withdraw prevents xmote
There are a couple places in function do_xmote where normal processing
is circumvented due to withdraws in progress. However, since we bypass
most of do_xmote() we bypass telling dlm to lock the dlm lock, which
means dlm will never respond with a completion callback. Since the
completion callback ordinarily clears GLF_LOCK, this patch changes
function do_xmote to handle those situations more gracefully so the
file system may be unmounted after withdraw.

A very similar situation happens with the GLF_DEMOTE_IN_PROGRESS flag,
which is cleared by function finish_xmote(). Since the withdraw causes
us to skip the majority of do_xmote, it therefore also skips the call
to finish_xmote() so the DEMOTE_IN_PROGRESS flag needs to be cleared
manually.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
2022-08-25 17:11:39 +02:00
..
acl.c vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
acl.h vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
aops.c New code for 6.0: 2022-08-11 13:11:49 -07:00
aops.h
bmap.c fs/buffer: Combine two submit_bh() and ll_rw_block() arguments 2022-07-14 12:14:32 -06:00
bmap.h gfs2: Clean up gfs2_unstuff_dinode 2021-06-29 10:56:51 +02:00
dentry.c
dir.c gfs2 fixes 2022-08-06 14:44:49 -07:00
dir.h
export.c gfs2: Minor gfs2_lookup_by_inum cleanup 2020-06-05 20:19:21 +02:00
file.c iov_iter stuff, part 2, rebased 2022-08-08 20:04:35 -07:00
gfs2.h
glock.c gfs2: Clear flags when withdraw prevents xmote 2022-08-25 17:11:39 +02:00
glock.h gfs2: Dequeue waiters when withdrawn 2022-08-25 17:11:14 +02:00
glops.c gfs2: Make go_instantiate take a glock 2022-06-29 16:59:07 +02:00
glops.h gfs2: Split up gfs2_meta_sync into inode and rgrp versions 2020-10-29 22:16:46 +01:00
incore.h gfs2: Make go_instantiate take a glock 2022-06-29 16:59:07 +02:00
inode.c gfs2: Use TRY lock in gfs2_inode_lookup for UNLINKED inodes 2022-08-25 15:25:16 +02:00
inode.h gfs2: Convert to release_folio 2022-05-09 23:12:33 -04:00
Kconfig
lock_dlm.c gfs2: Fix spelling mistake in comment 2022-06-24 01:49:50 +02:00
log.c New code for 6.0: 2022-08-11 13:11:49 -07:00
log.h fs/gfs2: Use the enum req_op and blk_opf_t types 2022-07-14 12:14:32 -06:00
lops.c Folio changes for 6.0 2022-08-03 10:35:43 -07:00
lops.h fs/gfs2: Use the enum req_op and blk_opf_t types 2022-07-14 12:14:32 -06:00
main.c gfs2 fixes 2022-08-06 14:44:49 -07:00
Makefile
meta_io.c fs/gfs2: Use the enum req_op and blk_opf_t types 2022-07-14 12:14:32 -06:00
meta_io.h gfs2: Use container_of() for gfs2_glock(aspace) 2022-05-24 21:29:14 +02:00
ops_fstype.c gfs2: Revert 'Fix "truncate in progress" hang' 2022-06-29 16:54:59 +02:00
quota.c gfs2 fixes 2022-08-06 14:44:49 -07:00
quota.h
recovery.c gfs2: replace 'found' with dedicated list iterator variable 2022-05-14 03:05:55 +02:00
recovery.h
rgrp.c Merge part of branch 'for-next.instantiate' into for-next 2022-08-05 18:37:03 +02:00
rgrp.h Merge part of branch 'for-next.instantiate' into for-next 2022-08-05 18:37:03 +02:00
super.c gfs2: Instantiate glocks ouside of glock state engine 2022-06-29 16:53:22 +02:00
super.h gfs2: Don't release and reacquire local statfs bh 2021-08-20 09:03:46 -05:00
sys.c block: remove genhd.h 2022-02-02 07:49:59 -07:00
sys.h
trace_gfs2.h gfs2: Remove 'first' trace_gfs2_promote argument 2021-10-25 08:42:19 +02:00
trans.c gfs2: fix use-after-free in trans_drain 2021-03-07 17:04:55 +01:00
trans.h Merge branches 'rgrp-glock-sharing' and 'gfs2-revoke' from https://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git 2021-02-23 18:54:22 +01:00
util.c gfs2: Dequeue waiters when withdrawn 2022-08-25 17:11:14 +02:00
util.h gfs2: don't stop reads while withdraw in progress 2021-08-20 09:03:46 -05:00
xattr.c gfs2: Minor gfs2_glock_nq_m cleanup 2022-06-28 20:38:15 +02:00
xattr.h