linux/fs/gfs2
Andreas Gruenbacher 64c61b4ac6 gfs2: Fix unlikely race in gdlm_put_lock
[ Upstream commit 28c4d9bc07 ]

In gdlm_put_lock(), there is a small window of time in which the
DFL_UNMOUNT flag has been set but the lockspace hasn't been released,
yet.  In that window, dlm may still call gdlm_ast() and gdlm_bast().
To prevent it from dereferencing freed glock objects, only free the
glock if the lockspace has actually been released.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: Andrew Price <anprice@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-10-29 14:10:16 +01:00
..
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 iomap: pass more arguments using the iomap writeback context 2025-07-14 10:51:31 +02:00
aops.h gfs2: Don't start unnecessary transactions during log flush 2025-05-22 09:12:27 +02:00
bmap.c iomap: replace iomap_folio_ops with iomap_write_ops 2025-07-14 10:51:33 +02:00
bmap.h iomap: replace iomap_folio_ops with iomap_write_ops 2025-07-14 10:51:33 +02:00
dentry.c gfs2_drevalidate(): use stable parent inode and name passed by caller 2025-01-27 19:25:24 -05:00
dir.c gfs2: Validate i_depth for exhash directories 2025-07-16 15:26:44 +02:00
dir.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
export.c exportfs: Remove EXPORT_OP_ASYNC_LOCK 2024-10-01 17:01:08 +02:00
file.c gfs2: Add proper lockspace locking 2025-10-15 12:03:15 +02:00
gfs2.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
glock.c gfs2: Add proper lockspace locking 2025-10-15 12:03:15 +02:00
glock.h gfs2: Further sanitize lock_dlm.c 2025-10-15 12:03:15 +02:00
glops.c gfs2: Validate i_depth for exhash directories 2025-07-16 15:26:44 +02:00
glops.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
incore.h gfs2: Add proper lockspace locking 2025-10-15 12:03:15 +02:00
inode.c gfs2: Remove GIF_ALLOC_FAILED flag 2025-07-09 19:40:07 +02:00
inode.h vfs-6.17-rc1.fileattr 2025-07-28 15:24:14 -07:00
Kconfig lib/crc: remove CONFIG_LIBCRC32C 2025-04-04 11:31:42 -07:00
lock_dlm.c gfs2: Fix unlikely race in gdlm_put_lock 2025-10-29 14:10:16 +01:00
log.c gfs2: Don't start unnecessary transactions during log flush 2025-05-22 09:12:27 +02:00
log.h gfs2: Move gfs2_log_pointers_init 2025-05-22 09:12:27 +02:00
lops.c gfs2: No more gfs2_find_jhead caching 2025-05-22 09:12:27 +02:00
lops.h gfs2: No more gfs2_find_jhead caching 2025-05-22 09:12:27 +02:00
main.c gfs2: use lockref_init for gl_lockref 2025-02-07 10:27:25 +01: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: Set .migrate_folio in gfs2_{rgrp,meta}_aops 2025-07-15 13:10:01 +02:00
meta_io.h gfs2: replace sd_aspace with sd_inode 2025-04-21 18:20:36 +02:00
ops_fstype.c Current exclusion rules for ->d_flags stores are rather unpleasant. 2025-07-28 09:17:57 -07:00
quota.c lockref: remove count argument of lockref_init 2025-02-07 10:27:25 +01:00
quota.h gfs2: reorder capability check last 2024-12-09 10:44:35 +01:00
recovery.c gfs2: No more gfs2_find_jhead caching 2025-05-22 09:12:27 +02:00
recovery.h gfs2: Simplify gfs2_log_pointers_init 2025-05-22 09:12:27 +02:00
rgrp.c gfs2: Use get_random_u32 in gfs2_orlov_skip 2024-11-05 12:39:29 +01:00
rgrp.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
super.c gfs2: Remove GIF_ALLOC_FAILED flag 2025-07-09 19:40:07 +02:00
super.h gfs2 fixes 2023-11-07 11:54:17 -08:00
sys.c gfs2: Don't clear sb->s_fs_info in gfs2_sys_fs_add 2025-05-30 19:20:20 +02:00
sys.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
trace_gfs2.h gfs2: Get rid of GLF_INVALIDATE_IN_PROGRESS 2025-10-15 12:03:15 +02:00
trans.c gfs2: Move gfs2_trans_add_databufs 2025-05-22 09:12:27 +02:00
trans.h gfs2: Move gfs2_trans_add_databufs 2025-05-22 09:12:27 +02:00
util.c gfs2: No more self recovery 2025-07-16 23:30:32 +02:00
util.h gfs2: gfs2_freeze_unlock cleanup 2024-04-29 12:35:15 +02:00
xattr.c gfs2: Move GIF_ALLOC_FAILED check out of gfs2_ea_dealloc 2025-04-21 18:20:36 +02:00
xattr.h gfs2: Move GIF_ALLOC_FAILED check out of gfs2_ea_dealloc 2025-04-21 18:20:36 +02:00