]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
restore cond_resched() in shrink_dcache_parent()
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 20 Apr 2018 03:58:48 +0000 (23:58 -0400)
committerBrian Maly <brian.maly@oracle.com>
Wed, 4 Sep 2019 01:08:47 +0000 (21:08 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit 4fb48871409e2fcd375087d526d07f7600c88f94)

Orabug: 30101895

Signed-off-by: John Donnelly <john.p.donnelly@oracle.com>
Reviewed-by: Somasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Conflicts:
fs/dcache.c - Upstream did not have 4th arg NULL to d_walk().

Signed-off-by: Brian Maly <brian.maly@oracle.com>
fs/dcache.c

index 16f36cfb4fd62dc2d82f3adbe8a02f68c94146e8..7916a213d75091338de8bb7c045fa1fb5cf50d72 100644 (file)
@@ -1427,10 +1427,15 @@ void shrink_dcache_parent(struct dentry *parent)
                data.found = 0;
 
                d_walk(parent, &data, select_collect, NULL);
+
+               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);