* [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