diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2016-09-15 18:25:47 +0200 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2016-11-16 14:23:23 -0500 |
commit | a7bb15bf0fbbe4c2affdf4915b852d841bf0b4bb (patch) | |
tree | 870aa2b0e70d3f53702cd8ee45e77e1fde51cdc1 | |
parent | 693a2956c4314e9bfa12a38871180add5ce5d8be (diff) | |
download | linux-rt-a7bb15bf0fbbe4c2affdf4915b852d841bf0b4bb.tar.gz |
fs/dcache: incremental fixup of the retry routine
It has been pointed out by tglx that on UP the non-RT task could spin
its entire time slice because the lock owner is preempted. This won't
happen on !RT. So we back to "chill" if we can't cond_resched() did not
work.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | fs/dcache.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 408551d483b7..e0a439c13318 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -38,8 +38,6 @@ #include <linux/prefetch.h> #include <linux/ratelimit.h> #include <linux/delay.h> -#include <linux/sched/rt.h> -#include <linux/sched/deadline.h> #include "internal.h" #include "mount.h" @@ -575,10 +573,11 @@ kill_it: if (parent == dentry) { /* the task with the highest priority won't schedule */ r = cond_resched(); - if (!r && (rt_task(current) || dl_task(current))) + if (!r) cpu_chill(); - } else + } else { dentry = parent; + } goto repeat; } } |