vfs: stop counting on gcc not messing with mnt_expiry_mark if not asked
authorMateusz Guzik <mjguzik@gmail.com>
Wed, 4 Oct 2023 11:19:16 +0000 (13:19 +0200)
committerChristian Brauner <brauner@kernel.org>
Thu, 19 Oct 2023 09:02:49 +0000 (11:02 +0200)
So happens it already was not doing it, but there is no need to "hope"
as indicated in the comment.

No changes in generated assembly.

Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link: https://lore.kernel.org/r/20231004111916.728135-3-mjguzik@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/namespace.c

index 9e0ea73f2ff91d8d86c4340462b74d1e5515558c..6bde71735efa79e03fdb07fe5938efe21d70eb79 100644 (file)
@@ -1346,9 +1346,9 @@ void mntput(struct vfsmount *mnt)
 {
        if (mnt) {
                struct mount *m = real_mount(mnt);
-               /* avoid cacheline pingpong, hope gcc doesn't get "smart" */
+               /* avoid cacheline pingpong */
                if (unlikely(m->mnt_expiry_mark))
-                       m->mnt_expiry_mark = 0;
+                       WRITE_ONCE(m->mnt_expiry_mark, 0);
                mntput_no_expire(m);
        }
 }