All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20180312223632.GA6124@castle>

diff --git a/a/1.txt b/N1/1.txt
index 611cd9d..0293639 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -39,58 +39,3 @@ Although it shouldn't be that important in practice.
 Thank you!
 
 --
-
->From ad9d6c627c2b9315de1967c40a1f4fa68705cf9e Mon Sep 17 00:00:00 2001
-From: Roman Gushchin <guro@fb.com>
-Date: Mon, 12 Mar 2018 22:24:28 +0000
-Subject: [PATCH] dcache: fix indirectly reclaimable memory accounting
-
-Signed-off-by: Roman Gushchin <guro@fb.com>
----
- fs/dcache.c | 17 +++++++++++++++--
- 1 file changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/fs/dcache.c b/fs/dcache.c
-index 98826efe22a0..19bc7495a6c4 100644
---- a/fs/dcache.c
-+++ b/fs/dcache.c
-@@ -266,6 +266,19 @@ static void __d_free(struct rcu_head *head)
- 	kmem_cache_free(dentry_cache, dentry); 
- }
- 
-+static void __d_free_external_name(struct rcu_head *head)
-+{
-+	struct external_name *name;
-+
-+	name = container_of(head, struct external_name, u.head);
-+
-+	mod_node_page_state(page_pgdat(virt_to_page(name)),
-+			    NR_INDIRECTLY_RECLAIMABLE_BYTES,
-+			    -ksize(name));
-+
-+	kfree(name);
-+}
-+
- static void __d_free_external(struct rcu_head *head)
- {
- 	struct dentry *dentry = container_of(head, struct dentry, d_u.d_rcu);
-@@ -307,7 +320,7 @@ void release_dentry_name_snapshot(struct name_snapshot *name)
- 		struct external_name *p;
- 		p = container_of(name->name, struct external_name, name[0]);
- 		if (unlikely(atomic_dec_and_test(&p->u.count)))
--			kfree_rcu(p, u.head);
-+			call_rcu(&p->u.head, __d_free_external_name);
- 	}
- }
- EXPORT_SYMBOL(release_dentry_name_snapshot);
-@@ -2769,7 +2782,7 @@ static void copy_name(struct dentry *dentry, struct dentry *target)
- 		dentry->d_name.hash_len = target->d_name.hash_len;
- 	}
- 	if (old_name && likely(atomic_dec_and_test(&old_name->u.count)))
--		kfree_rcu(old_name, u.head);
-+		call_rcu(&old_name->u.head, __d_free_external_name);
- }
- 
- static void dentry_lock_for_move(struct dentry *dentry, struct dentry *target)
--- 
-2.14.3
diff --git a/a/content_digest b/N1/content_digest
index 122ecce..b15714e 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -5,13 +5,13 @@
  "Subject\0Re: [PATCH 3/3] dcache: account external names as indirectly reclaimable memory\0"
  "Date\0Mon, 12 Mar 2018 22:36:38 +0000\0"
  "To\0Al Viro <viro@zeniv.linux.org.uk>\0"
- "Cc\0<linux-mm@kvack.org>"
+ "Cc\0linux-mm@kvack.org"
   Andrew Morton <akpm@linux-foundation.org>
   Michal Hocko <mhocko@suse.com>
   Johannes Weiner <hannes@cmpxchg.org>
-  <linux-fsdevel@vger.kernel.org>
-  <linux-kernel@vger.kernel.org>
- " <kernel-team@fb.com>\0"
+  linux-fsdevel@vger.kernel.org
+  linux-kernel@vger.kernel.org
+ " kernel-team@fb.com\0"
  "\00:1\0"
  "b\0"
  "On Mon, Mar 12, 2018 at 09:17:42PM +0000, Al Viro wrote:\n"
@@ -54,61 +54,6 @@
  "\n"
  "Thank you!\n"
  "\n"
- "--\n"
- "\n"
- ">From ad9d6c627c2b9315de1967c40a1f4fa68705cf9e Mon Sep 17 00:00:00 2001\n"
- "From: Roman Gushchin <guro@fb.com>\n"
- "Date: Mon, 12 Mar 2018 22:24:28 +0000\n"
- "Subject: [PATCH] dcache: fix indirectly reclaimable memory accounting\n"
- "\n"
- "Signed-off-by: Roman Gushchin <guro@fb.com>\n"
- "---\n"
- " fs/dcache.c | 17 +++++++++++++++--\n"
- " 1 file changed, 15 insertions(+), 2 deletions(-)\n"
- "\n"
- "diff --git a/fs/dcache.c b/fs/dcache.c\n"
- "index 98826efe22a0..19bc7495a6c4 100644\n"
- "--- a/fs/dcache.c\n"
- "+++ b/fs/dcache.c\n"
- "@@ -266,6 +266,19 @@ static void __d_free(struct rcu_head *head)\n"
- " \tkmem_cache_free(dentry_cache, dentry); \n"
- " }\n"
- " \n"
- "+static void __d_free_external_name(struct rcu_head *head)\n"
- "+{\n"
- "+\tstruct external_name *name;\n"
- "+\n"
- "+\tname = container_of(head, struct external_name, u.head);\n"
- "+\n"
- "+\tmod_node_page_state(page_pgdat(virt_to_page(name)),\n"
- "+\t\t\t    NR_INDIRECTLY_RECLAIMABLE_BYTES,\n"
- "+\t\t\t    -ksize(name));\n"
- "+\n"
- "+\tkfree(name);\n"
- "+}\n"
- "+\n"
- " static void __d_free_external(struct rcu_head *head)\n"
- " {\n"
- " \tstruct dentry *dentry = container_of(head, struct dentry, d_u.d_rcu);\n"
- "@@ -307,7 +320,7 @@ void release_dentry_name_snapshot(struct name_snapshot *name)\n"
- " \t\tstruct external_name *p;\n"
- " \t\tp = container_of(name->name, struct external_name, name[0]);\n"
- " \t\tif (unlikely(atomic_dec_and_test(&p->u.count)))\n"
- "-\t\t\tkfree_rcu(p, u.head);\n"
- "+\t\t\tcall_rcu(&p->u.head, __d_free_external_name);\n"
- " \t}\n"
- " }\n"
- " EXPORT_SYMBOL(release_dentry_name_snapshot);\n"
- "@@ -2769,7 +2782,7 @@ static void copy_name(struct dentry *dentry, struct dentry *target)\n"
- " \t\tdentry->d_name.hash_len = target->d_name.hash_len;\n"
- " \t}\n"
- " \tif (old_name && likely(atomic_dec_and_test(&old_name->u.count)))\n"
- "-\t\tkfree_rcu(old_name, u.head);\n"
- "+\t\tcall_rcu(&old_name->u.head, __d_free_external_name);\n"
- " }\n"
- " \n"
- " static void dentry_lock_for_move(struct dentry *dentry, struct dentry *target)\n"
- "-- \n"
- 2.14.3
+ --
 
-80acdff4e7647590f988bf8904fdcf309990871dbc78159882ec6f01f353a7f9
+f5999c3b547583f7f56c3d970e45ab92f68d26d5ad9e099746d39f4b3d0f3913

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.