projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android
[firefly-linux-kernel-4.4.55.git]
/
fs
/
dcache.c
diff --git
a/fs/dcache.c
b/fs/dcache.c
index d049200362690961431ae07c41bb9582ae6ebf94..9e5099997fcd8da473bbdf50211873108c4f7194 100644
(file)
--- a/
fs/dcache.c
+++ b/
fs/dcache.c
@@
-578,7
+578,6
@@
static struct dentry *dentry_kill(struct dentry *dentry)
failed:
spin_unlock(&dentry->d_lock);
failed:
spin_unlock(&dentry->d_lock);
- cpu_relax();
return dentry; /* try again with same dentry */
}
return dentry; /* try again with same dentry */
}
@@
-752,6
+751,8
@@
void dput(struct dentry *dentry)
return;
repeat:
return;
repeat:
+ might_sleep();
+
rcu_read_lock();
if (likely(fast_dput(dentry))) {
rcu_read_unlock();
rcu_read_lock();
if (likely(fast_dput(dentry))) {
rcu_read_unlock();
@@
-783,8
+784,10
@@
repeat:
kill_it:
dentry = dentry_kill(dentry);
kill_it:
dentry = dentry_kill(dentry);
- if (dentry)
+ if (dentry) {
+ cond_resched();
goto repeat;
goto repeat;
+ }
}
EXPORT_SYMBOL(dput);
}
EXPORT_SYMBOL(dput);