Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e361cccc authored by Andrea Parri's avatar Andrea Parri Committed by Greg Kroah-Hartman
Browse files

kernfs: fix barrier usage in __kernfs_new_node()



commit 998267900cee901c5d1dfa029a6304d00acbc29f upstream.

smp_mb__before_atomic() can not be applied to atomic_set().  Remove the
barrier and rely on RELEASE synchronization.

Fixes: ba16b284 ("kernfs: add an API to get kernfs node from inode number")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarAndrea Parri <andrea.parri@amarulasolutions.com>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f1917f21
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -650,11 +650,10 @@ static struct kernfs_node *__kernfs_new_node(struct kernfs_root *root,
	kn->id.generation = gen;

	/*
	 * set ino first. This barrier is paired with atomic_inc_not_zero in
	 * set ino first. This RELEASE is paired with atomic_inc_not_zero in
	 * kernfs_find_and_get_node_by_ino
	 */
	smp_mb__before_atomic();
	atomic_set(&kn->count, 1);
	atomic_set_release(&kn->count, 1);
	atomic_set(&kn->active, KN_DEACTIVATED_BIAS);
	RB_CLEAR_NODE(&kn->rb);