Commit 722ce7c6 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher Committed by Zeng Heng
Browse files

gfs2: Rename sd_{ glock => kill }_wait

mainline inclusion
from mainline-v6.6-rc1
commit 3c69c437
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IA6SA1
CVE: CVE-2024-38570

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3c69c437bf9832d2201702c5ccc3b8a77a7e0aa3



--------------------------------

Rename sd_glock_wait to sd_kill_wait: we'll use it for other things
related to "killing" a filesystem on unmount soon (kill_sb).

Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
Conflicts:
	fs/gfs2/glock.c
[Resolve conflicts due to several refactor patches not merged.]
Signed-off-by: default avatarZeng Heng <zengheng4@huawei.com>
parent 9bb2f255
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ void gfs2_glock_free(struct gfs2_glock *gl)
	wake_up_glock(gl);
	call_rcu(&gl->gl_rcu, gfs2_glock_dealloc);
	if (atomic_dec_and_test(&sdp->sd_glock_disposal))
		wake_up(&sdp->sd_glock_wait);
		wake_up(&sdp->sd_kill_wait);
}

/**
@@ -1097,7 +1097,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number,
	kfree(gl->gl_lksb.sb_lvbptr);
	kmem_cache_free(cachep, gl);
	if (atomic_dec_and_test(&sdp->sd_glock_disposal))
		wake_up(&sdp->sd_glock_wait);
		wake_up(&sdp->sd_kill_wait);

out:
	return ret;
@@ -2010,7 +2010,7 @@ void gfs2_gl_hash_clear(struct gfs2_sbd *sdp)
	flush_workqueue(glock_workqueue);
	glock_hash_walk(clear_glock, sdp);
	flush_workqueue(glock_workqueue);
	wait_event_timeout(sdp->sd_glock_wait,
	wait_event_timeout(sdp->sd_kill_wait,
			   atomic_read(&sdp->sd_glock_disposal) == 0,
			   HZ * 600);
	glock_hash_walk(dump_glock_func, sdp);
+1 −1
Original line number Diff line number Diff line
@@ -741,7 +741,7 @@ struct gfs2_sbd {
	struct gfs2_glock *sd_rename_gl;
	struct gfs2_glock *sd_freeze_gl;
	struct work_struct sd_freeze_work;
	wait_queue_head_t sd_glock_wait;
	wait_queue_head_t sd_kill_wait;
	wait_queue_head_t sd_async_glock_wait;
	atomic_t sd_glock_disposal;
	struct completion sd_locking_init;
+1 −1
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb)
	set_bit(SDF_NOJOURNALID, &sdp->sd_flags);
	gfs2_tune_init(&sdp->sd_tune);

	init_waitqueue_head(&sdp->sd_glock_wait);
	init_waitqueue_head(&sdp->sd_kill_wait);
	init_waitqueue_head(&sdp->sd_async_glock_wait);
	atomic_set(&sdp->sd_glock_disposal, 0);
	init_completion(&sdp->sd_locking_init);