diff options
-rw-r--r-- | fs/dcache.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index c4d2234eccc3..60df712262c2 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -1473,10 +1473,15 @@ void shrink_dcache_parent(struct dentry *parent) data.found = 0; d_walk(parent, &data, select_collect); + + if (!list_empty(&data.dispose)) { + shrink_dentry_list(&data.dispose); + continue; + } + + cond_resched(); if (!data.found) break; - - shrink_dentry_list(&data.dispose); } } EXPORT_SYMBOL(shrink_dcache_parent); |