diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-03-07 20:00:34 (GMT) |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2014-05-14 18:38:37 (GMT) |
commit | 587c55f3b7e91d6b5059b6276b3c9c6789e514be (patch) | |
tree | 333f48e8692f0fd37b3eae27b8335b416e656518 /fs/namespace.c | |
parent | a473767a5b67bc7b0196a61e9e26aec5298c1928 (diff) | |
download | linux-fsl-qoriq-587c55f3b7e91d6b5059b6276b3c9c6789e514be.tar.xz |
fs: dcache: Use cpu_chill() in trylock loops
Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system
make progress.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable-rt@vger.kernel.org
Diffstat (limited to 'fs/namespace.c')
-rw-r--r-- | fs/namespace.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 6ed0fb1..22cbfab 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -23,6 +23,7 @@ #include <linux/uaccess.h> #include <linux/proc_ns.h> #include <linux/magic.h> +#include <linux/delay.h> #include "pnode.h" #include "internal.h" @@ -317,7 +318,7 @@ int __mnt_want_write(struct vfsmount *m) smp_mb(); while (ACCESS_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD) { preempt_enable(); - cpu_relax(); + cpu_chill(); preempt_disable(); } /* |