linux-stable/fs/gfs2
Andreas Gruenbacher a56965e24c gfs2: do_xmote fixes
[ Upstream commit 9947a06d29 ]

Function do_xmote() is called with the glock spinlock held.  Commit
86934198ee added a 'goto skip_inval' statement at the beginning of the
function to further below where the glock spinlock is expected not to be
held anymore.  Then it added code there that requires the glock spinlock
to be held.  This doesn't make sense; fix this up by dropping and
retaking the spinlock where needed.

In addition, when ->lm_lock() returned an error, do_xmote() didn't fail
the locking operation, and simply left the glock hanging; fix that as
well.  (This is a much older error.)

Fixes: 86934198ee ("gfs2: Clear flags when withdraw prevents xmote")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-05-30 09:49:14 +02:00
..
Kconfig fs: add CONFIG_BUFFER_HEAD 2023-08-02 09:13:09 -06:00
Makefile
acl.c gfs2: convert to ctime accessor functions 2023-07-24 10:29:59 +02:00
acl.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
aops.c gfs2 updates 2024-01-10 09:36:40 -08:00
aops.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
bmap.c gfs2: Fix invalid metadata access in punch_hole 2024-05-17 12:14:37 +02:00
bmap.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
dentry.c Revert "gfs2: Use GL_NOBLOCK flag for non-blocking lookups" 2024-02-02 17:21:44 +01:00
dir.c gfs2 fixes 2023-11-07 11:54:17 -08:00
dir.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
export.c dlm for 6.8 2024-01-10 10:17:23 -08:00
file.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2023-12-20 21:29:40 +01:00
gfs2.h
glock.c gfs2: do_xmote fixes 2024-05-30 09:49:14 +02:00
glock.h gfs2: Fix potential glock use-after-free on unmount 2024-05-30 09:49:14 +02:00
glops.c gfs2: Don't forget to complete delayed withdraw 2024-05-30 09:49:11 +02:00
glops.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
incore.h gfs2: Fix potential glock use-after-free on unmount 2024-05-30 09:49:14 +02:00
inode.c Revert "gfs2: Use GL_NOBLOCK flag for non-blocking lookups" 2024-02-02 17:21:44 +01:00
inode.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
lock_dlm.c gfs2: Fix potential glock use-after-free on unmount 2024-05-30 09:49:14 +02:00
log.c gfs2: Fix freeze consistency check in log_write_header 2023-12-27 13:16:48 +01:00
log.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
lops.c gfs2: Remove use of error flag in journal reads 2023-12-20 21:29:41 +01:00
lops.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
main.c gfs2: dynamically allocate the gfs2-qd shrinker 2023-10-04 10:32:23 -07:00
meta_io.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2023-12-20 21:29:40 +01:00
meta_io.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
ops_fstype.c gfs2: Fix potential glock use-after-free on unmount 2024-05-30 09:49:14 +02:00
quota.c gfs2 updates 2024-01-10 09:36:40 -08:00
quota.h gfs2 fixes 2023-11-07 11:54:17 -08:00
recovery.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2023-12-20 21:29:40 +01:00
recovery.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
rgrp.c gfs2: rgrp: fix kernel-doc warnings 2023-12-18 14:24:33 +01:00
rgrp.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
super.c gfs2: Fix potential glock use-after-free on unmount 2024-05-30 09:49:14 +02:00
super.h gfs2 fixes 2023-11-07 11:54:17 -08:00
sys.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2023-12-20 21:29:40 +01:00
sys.h
trace_gfs2.h
trans.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2023-12-20 21:29:40 +01:00
trans.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
util.c gfs2: Fix "ignore unlock failures after withdraw" 2024-05-30 09:49:11 +02:00
util.h gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2023-12-20 21:29:40 +01:00
xattr.c gfs2 fixes 2023-11-07 11:54:17 -08:00
xattr.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00