diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-03-07 20:00:34 (GMT) |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2015-02-13 22:20:54 (GMT) |
commit | fae775f49cbca6660d77086c4eed1d2c77afcdb0 (patch) | |
tree | 076cdd973f65d2e4c80f7a48b47de8cd6b39f914 /fs/namespace.c | |
parent | fb89e9743e513d51e2ea43deb0451461c328435c (diff) | |
download | linux-fsl-qoriq-fae775f49cbca6660d77086c4eed1d2c77afcdb0.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 f8214ee..bbe7def 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(); } /* |