summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2016-09-17 13:48:00 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2016-09-17 13:48:00 -0400
commit8fbbc98312c579bcdad5a91682489d1c3c38b988 (patch)
tree916f68912712d08dabc4c0ec4464d7fa418dbbd2
parent9cf42b99c82bf931d4e1d4392c80387b6969f3e2 (diff)
download4.8-rt-patches-8fbbc98312c579bcdad5a91682489d1c3c38b988.tar.gz
Revert "fs: refresh dcache patch; drop chunk removed upstream"
This reverts commit 9db2faf4d248418f2358020f55f558aff2abdebf. ...to get us back to the state things were in 4.6+stable
-rw-r--r--patches/fs-dcache-use-cpu-chill-in-trylock-loops.patch38
1 files changed, 20 insertions, 18 deletions
diff --git a/patches/fs-dcache-use-cpu-chill-in-trylock-loops.patch b/patches/fs-dcache-use-cpu-chill-in-trylock-loops.patch
index a6f0478d986918..134a6140b2b797 100644
--- a/patches/fs-dcache-use-cpu-chill-in-trylock-loops.patch
+++ b/patches/fs-dcache-use-cpu-chill-in-trylock-loops.patch
@@ -1,18 +1,20 @@
-From f7312abb1ed7c87585f3a48b25c74dfd6ded6373 Mon Sep 17 00:00:00 2001
+Subject: fs: dcache: Use cpu_chill() in trylock loops
From: Thomas Gleixner <tglx@linutronix.de>
-Date: Wed, 7 Mar 2012 21:00:34 +0100
-Subject: [PATCH] fs: dcache: Use cpu_chill() in trylock loops
+Date: Wed, 07 Mar 2012 21:00:34 +0100
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>
-[PG: drop chunk from dcache.c that was removed in 47be61845c775643]
-Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
-index a439548de785..7c392647d03b 100644
+---
+ fs/autofs4/autofs_i.h | 1 +
+ fs/autofs4/expire.c | 2 +-
+ fs/dcache.c | 5 +++--
+ fs/namespace.c | 3 ++-
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
--- a/fs/autofs4/autofs_i.h
+++ b/fs/autofs4/autofs_i.h
@@ -30,6 +30,7 @@
@@ -23,11 +25,9 @@ index a439548de785..7c392647d03b 100644
#include <asm/current.h>
#include <linux/uaccess.h>
-diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c
-index b493909e7492..faa07a5930d5 100644
--- a/fs/autofs4/expire.c
+++ b/fs/autofs4/expire.c
-@@ -148,7 +148,7 @@ again:
+@@ -148,7 +148,7 @@ static struct dentry *get_next_positive_
parent = p->d_parent;
if (!spin_trylock(&parent->d_lock)) {
spin_unlock(&p->d_lock);
@@ -36,8 +36,6 @@ index b493909e7492..faa07a5930d5 100644
goto relock;
}
spin_unlock(&p->d_lock);
-diff --git a/fs/dcache.c b/fs/dcache.c
-index b90cf8e09d5b..4592ad3ea33b 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -19,6 +19,7 @@
@@ -48,7 +46,16 @@ index b90cf8e09d5b..4592ad3ea33b 100644
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/hash.h>
-@@ -2334,7 +2335,7 @@ again:
+@@ -578,7 +579,7 @@ static struct dentry *dentry_kill(struct
+
+ failed:
+ spin_unlock(&dentry->d_lock);
+- cpu_relax();
++ cpu_chill();
+ return dentry; /* try again with same dentry */
+ }
+
+@@ -2316,7 +2317,7 @@ void d_delete(struct dentry * dentry)
if (dentry->d_lockref.count == 1) {
if (!spin_trylock(&inode->i_lock)) {
spin_unlock(&dentry->d_lock);
@@ -57,8 +64,6 @@ index b90cf8e09d5b..4592ad3ea33b 100644
goto again;
}
dentry->d_flags &= ~DCACHE_CANT_MOUNT;
-diff --git a/fs/namespace.c b/fs/namespace.c
-index d1ae388e80db..b55a6a33a01d 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -14,6 +14,7 @@
@@ -78,6 +83,3 @@ index d1ae388e80db..b55a6a33a01d 100644
preempt_disable();
}
/*
---
-2.5.0
-