Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f9398c23 authored by Ian Kent's avatar Ian Kent Committed by Al Viro
Browse files

autofs4 - fix dentry leak in autofs4_expire_direct()



There is a missing dput() when returning from autofs4_expire_direct()
when we see that the dentry is already a pending mount.

Signed-off-by: default avatarIan Kent <raven@themaw.net>
Acked-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 3c319985
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -290,10 +290,8 @@ struct dentry *autofs4_expire_direct(struct super_block *sb,
	spin_lock(&sbi->fs_lock);
	ino = autofs4_dentry_ino(root);
	/* No point expiring a pending mount */
	if (ino->flags & AUTOFS_INF_PENDING) {
		spin_unlock(&sbi->fs_lock);
		return NULL;
	}
	if (ino->flags & AUTOFS_INF_PENDING)
		goto out;
	if (!autofs4_direct_busy(mnt, root, timeout, do_now)) {
		struct autofs_info *ino = autofs4_dentry_ino(root);
		ino->flags |= AUTOFS_INF_EXPIRING;
@@ -301,6 +299,7 @@ struct dentry *autofs4_expire_direct(struct super_block *sb,
		spin_unlock(&sbi->fs_lock);
		return root;
	}
out:
	spin_unlock(&sbi->fs_lock);
	dput(root);