public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] kernfs: fix barrier usage in __kernfs_new_node()
@ 2019-04-16 12:17 Andrea Parri
  2019-04-16 14:47 ` Tejun Heo
  0 siblings, 1 reply; 2+ messages in thread
From: Andrea Parri @ 2019-04-16 12:17 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Tejun Heo; +Cc: linux-kernel

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

Fixes: ba16b2846a8c6 ("kernfs: add an API to get kernfs node from inode number")
Cc: stable@vger.kernel.org
Signed-off-by: Andrea Parri <andrea.parri@amarulasolutions.com>
---
 fs/kernfs/dir.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index b84d635567d38..1e7a74b8e0647 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -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);
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] kernfs: fix barrier usage in __kernfs_new_node()
  2019-04-16 12:17 [PATCH] kernfs: fix barrier usage in __kernfs_new_node() Andrea Parri
@ 2019-04-16 14:47 ` Tejun Heo
  0 siblings, 0 replies; 2+ messages in thread
From: Tejun Heo @ 2019-04-16 14:47 UTC (permalink / raw)
  To: Andrea Parri; +Cc: Greg Kroah-Hartman, linux-kernel

On Tue, Apr 16, 2019 at 02:17:11PM +0200, Andrea Parri wrote:
> smp_mb__before_atomic() can not be applied to atomic_set().  Remove the
> barrier and rely on RELEASE synchronization.
> 
> Fixes: ba16b2846a8c6 ("kernfs: add an API to get kernfs node from inode number")
> Cc: stable@vger.kernel.org
> Signed-off-by: Andrea Parri <andrea.parri@amarulasolutions.com>
> ---
>  fs/kernfs/dir.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
> index b84d635567d38..1e7a74b8e0647 100644
> --- a/fs/kernfs/dir.c
> +++ b/fs/kernfs/dir.c
> @@ -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);

Acked-by: Tejun Heo <tj@kernel.org>

Thanks.

--
tejun

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-04-16 14:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-16 12:17 [PATCH] kernfs: fix barrier usage in __kernfs_new_node() Andrea Parri
2019-04-16 14:47 ` Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox