OpenCloudOS-Kernel/fs/gfs2
Andreas Gruenbacher 3429ef5f50 gfs2: Fix NULL pointer dereference in gfs2_log_flush
[ Upstream commit 35264909e9d1973ab9aaa2a1b07cda70f12bb828 ]

In gfs2_jindex_free(), set sdp->sd_jdesc to NULL under the log flush
lock to provide exclusion against gfs2_log_flush().

In gfs2_log_flush(), check if sdp->sd_jdesc is non-NULL before
dereferencing it.  Otherwise, we could run into a NULL pointer
dereference when outstanding glock work races with an unmount
(glock_work_func -> run_queue -> do_xmote -> inode_go_sync ->
gfs2_log_flush).

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-05 09:33:52 +02:00
..
Kconfig fs: add CONFIG_BUFFER_HEAD 2023-08-02 09:13:09 -06: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 gfs2: convert to ctime accessor functions 2023-07-24 10:29:59 +02:00
acl.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
aops.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
aops.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
bmap.c gfs2: Get rid of gfs2_alloc_blocks generation parameter 2024-06-12 11:11:44 +02:00
bmap.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
dentry.c Reinstate "GFS2: free disk inode which is deleted by remote node -V2" 2023-03-23 19:37:56 +01:00
dir.c gfs2: Get rid of gfs2_alloc_blocks generation parameter 2024-06-12 11:11:44 +02:00
dir.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
export.c Change calling conventions for filldir_t 2022-08-17 17:25:04 -04:00
file.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
gfs2.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
glock.c gfs2: do_xmote fixes 2024-06-12 11:11:45 +02:00
glock.h gfs2: Fix potential glock use-after-free on unmount 2024-06-12 11:11:44 +02:00
glops.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
glops.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
incore.h gfs2: Fix potential glock use-after-free on unmount 2024-06-12 11:11:44 +02:00
inode.c gfs2: Rename gfs2_lookup_{ simple => meta } 2024-06-12 11:11:44 +02:00
inode.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
lock_dlm.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
log.c gfs2: Fix NULL pointer dereference in gfs2_log_flush 2024-07-05 09:33:52 +02:00
log.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
lops.c gfs2: Use mapping->gfp_mask for metadata inodes 2023-09-05 15:58:15 +02:00
lops.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
main.c gfs2: Rename "freeze_workqueue" to "gfs2_freeze" 2023-09-05 15:58:17 +02:00
meta_io.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
meta_io.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
ops_fstype.c kthread: add kthread_stop_put 2024-06-12 11:12:52 +02:00
quota.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
quota.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
recovery.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
recovery.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
rgrp.c gfs2: Get rid of gfs2_alloc_blocks generation parameter 2024-06-12 11:11:44 +02:00
rgrp.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
super.c gfs2: Fix NULL pointer dereference in gfs2_log_flush 2024-07-05 09:33:52 +02:00
super.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
sys.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +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: Remove 'first' trace_gfs2_promote argument 2021-10-25 08:42:19 +02:00
trans.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
trans.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00
util.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
util.h gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2024-06-12 11:11:45 +02:00
xattr.c gfs2: Get rid of gfs2_alloc_blocks generation parameter 2024-06-12 11:11:44 +02:00
xattr.h gfs2: No longer use 'extern' in function declarations 2024-06-12 11:11:44 +02:00