From: Greg Kroah-Hartman Date: Fri, 14 Aug 2015 16:49:17 +0000 (-0700) Subject: 3.14-stable patches X-Git-Tag: v3.10.87~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=70cb016f6135d8babec0a9e3f2354d5e4842a115;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: new-helper-dentry_free.patch --- diff --git a/queue-3.14/new-helper-dentry_free.patch b/queue-3.14/new-helper-dentry_free.patch new file mode 100644 index 00000000000..2b3bc41f206 --- /dev/null +++ b/queue-3.14/new-helper-dentry_free.patch @@ -0,0 +1,51 @@ +From b4f0354e968f5fabd39bc85b99fedae4a97589fe Mon Sep 17 00:00:00 2001 +From: Al Viro +Date: Tue, 29 Apr 2014 23:40:14 -0400 +Subject: new helper: dentry_free() + +From: Al Viro + +commit b4f0354e968f5fabd39bc85b99fedae4a97589fe upstream. + +The part of old d_free() that dealt with actual freeing of dentry. +Taken out of dentry_kill() into a separate function. + +Signed-off-by: Al Viro +Cc: "Nicholas A. Bellinger" +Signed-off-by: Greg Kroah-Hartman + +--- + fs/dcache.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -244,6 +244,15 @@ static void __d_free(struct rcu_head *he + kmem_cache_free(dentry_cache, dentry); + } + ++static void dentry_free(struct dentry *dentry) ++{ ++ /* if dentry was never visible to RCU, immediate free is OK */ ++ if (!(dentry->d_flags & DCACHE_RCUACCESS)) ++ __d_free(&dentry->d_u.d_rcu); ++ else ++ call_rcu(&dentry->d_u.d_rcu, __d_free); ++} ++ + /** + * dentry_rcuwalk_barrier - invalidate in-progress rcu-walk lookups + * @dentry: the target dentry +@@ -511,11 +520,7 @@ relock: + if (dentry->d_op && dentry->d_op->d_release) + dentry->d_op->d_release(dentry); + +- /* if dentry was never visible to RCU, immediate free is OK */ +- if (!(dentry->d_flags & DCACHE_RCUACCESS)) +- __d_free(&dentry->d_u.d_rcu); +- else +- call_rcu(&dentry->d_u.d_rcu, __d_free); ++ dentry_free(dentry); + return parent; + } + diff --git a/queue-3.14/series b/queue-3.14/series index faaa532ba6f..c26b1f3a7a8 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -32,3 +32,4 @@ signal-fix-information-leak-in-copy_siginfo_to_user.patch signal-fix-information-leak-in-copy_siginfo_from_user32.patch fold-d_kill-and-d_free.patch fold-try_prune_one_dentry.patch +new-helper-dentry_free.patch