From: Konstantin Khlebnikov
Release the dentry lock inside the sweep_negative() function. This
is in preparation for a follow up patch and doesn't change runtime
behavior.
Signed-off-by: Konstantin Khlebnikov
Signed-off-by: Gautham Ananthakrisha
---
fs/dcache.c | 8 ++--
1 file changed,
From: Konstantin Khlebnikov
Most walkers are interested only in positive dentries.
Changes in simple_* libfs helpers are mostly cosmetic: it shouldn't cache
negative dentries unless uses d_delete other than always_delete_dentry().
Signed-off-by: Konstantin Khlebnikov
Signed-off-by: Ga
From: Konstantin Khlebnikov
This lets skip remaining siblings at seeing d_is_tail_negative().
Signed-off-by: Konstantin Khlebnikov
Signed-off-by: Gautham Ananthakrishna
---
fs/dcache.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/fs/dcache.c b/fs/dcache.c
index a506169..894e6da
522699.9%
nr_negative = 24600351 99.9%
This heuristic isn't bulletproof and solves only most practical case.
It's easy to deceive: just touch same random name twice.
Signed-off-by: Konstantin Khlebnikov
Signed-off-by: Gautham An
99.9%
nr_negative = 24543867 99.9%
inotify time: 0.10 seconds
Negative dentries no longer slow down inotify op at parent directory.
Signed-off-by: Konstantin Khlebnikov
Signed-off-by: Gautham Ananthakrishna
---
fs/notify/fsnotify.c | 6 +-
1 file changed, 5 insertions(+), 1
For most filesystems result of every negative lookup is cached, content of
directories is usually cached too. Production of negative dentries isn't
limited with disk speed. It's really easy to generate millions of them if
system has enough memory.
Getting this memory back ins't that easy because s
following dentries are negative too.
Reverse operation is required before instantiating negative dentry.
Signed-off-by: Konstantin Khlebnikov
Signed-off-by: Gautham Ananthakrishna
---
fs/dcache.c| 59 +++---
include/linux/dcache.h | 6
7 matches
Mail list logo