Commit 640946f2 authored by Al Viro's avatar Al Viro
Browse files

dentry leak in simple_fill_super() failure exit



d_genocide() does _not_ evict dentries; it just removes extra ref
pinning each of those.  Normally it's followed by shrinking the
tree (it's done just before generic_shutdown_super() by kill_litter_super()),
but in case of simple_fill_super() nothing of that kind will follow.
Just do shrink_dcache_parent() manually.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent c65390f4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -529,6 +529,7 @@ int simple_fill_super(struct super_block *s, unsigned long magic,
	return 0;
out:
	d_genocide(root);
	shrink_dcache_parent(root);
	dput(root);
	return -ENOMEM;
}