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
ext4: enforce online defrag restriction for encrypted files
[firefly-linux-kernel-4.4.55.git]
/
fs
/
dcache.c
diff --git
a/fs/dcache.c
b/fs/dcache.c
index 108d7d810be3ffafcb0dfc65cc3d1bf23a8e1301..71b6056ad35dc0765c5d188ba30f2c3534495327 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);