Skip to contentSkip to conversation

vfs, freeze: use ACCESS_ONCE() to guard access to ->mnt_flags

PATCH Applied Miao Xie 2 participants 2 messages Nov 16, 2012 VFS

lore
Share & tools
lore

Miao Xie

author
#0 lore raw

PATCH 1/1 vfs, freeze: use ACCESS_ONCE() to guard access to ->mnt_flags

The compiler may optimize the while loop and make the check just be done once, so we should use ACCESS_ONCE() to guard access to ->mnt_flags

---
 fs/namespace.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
fs/namespace.c +1 -1
index 7bdf790..6eca68e 100644
@@ -311,7 +311,7 @@ int __mnt_want_write(struct vfsmount *m)
 	 * incremented count after it has set MNT_WRITE_HOLD.
 	 */
 	smp_mb();
-	while (mnt->mnt.mnt_flags & MNT_WRITE_HOLD)
+	while (ACCESS_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD)
 		cpu_relax();
 	/*
 	 * After the slowpath clears MNT_WRITE_HOLD, mnt_is_readonly will
Signature · 1 line
1.7.11.7
maintainer Applied
#1 lore raw
Quoted 2 lines · Miao Xie

The compiler may optimize the while loop and make the check just be done once, so we should use ACCESS_ONCE() to guard access to ->mnt_flags

Applied.