[PATCH] [NET] dont insert socket dentries into dentry_hashtable.
From: Eric Dumazet <hidden>
Date: 2006-11-22 18:00:21
Also in:
lkml
Attachments
- socket_nohash_dentry.patch [text/plain] 1466 bytes · preview
From: Eric Dumazet <hidden>
Date: 2006-11-22 18:00:21
Also in:
lkml
We currently insert socket dentries into the global dentry hashtable. This is *suboptimal* because there is currently no way these entries can be used for a lookup(). (/proc/xxx/fd/xxx uses a different mechanism). Inserting them in dentry hashtable slow dcache lookups. To let __dpath() still work correctly (ie not adding a " (deleted)") after dentry name, we do : - Right after d_alloc(), pretend they are hashed by clearing the DCACHE_UNHASHED bit. - Call d_instantiate() instead of d_add() : dentry is not inserted in hash table. __dpath() & friends work as intended during dentry lifetime. - At dismantle time, once dput() must clear the dentry, setting again DCACHE_UNHASHED bit inside the custom d_delete() function provided by socket code, so that dput() can just kill_it. Signed-off-by: Eric Dumazet <redacted>