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: Ian Kent <raven@themaw.net> Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
3c31998529
commit
f9398c233e
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue