autofs4 - use simple_empty() for empty directory check
authorIan Kent <raven@themaw.net>
Fri, 14 Dec 2012 02:23:29 +0000 (10:23 +0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 14 Dec 2012 03:13:25 +0000 (19:13 -0800)
commit0259cb02c4004d3088b0999799f8f5c8801f6b97
treeb93489768a12a36fbb2ec33d1e04742f84238d9e
parentf55fb0c24386cee8b78f60d60186716bd0909493
autofs4 - use simple_empty() for empty directory check

For direct (and offset) mounts, if an automounted mount is manually
umounted the trigger mount dentry can appear non-empty causing it to
not trigger mounts. This can also happen if there is a file handle
leak in a user space automounting application.

This happens because, when a ioctl control file handle is opened
on the mount, a cursor dentry is created which causes list_empty()
to see the dentry as non-empty. Since there is a case where listing
the directory of these dentrys is needed, the use of dcache_dir_*()
functions for .open() and .release() is needed.

Consequently simple_empty() must be used instead of list_empty()
when checking for an empty directory.

Signed-off-by: Ian Kent <raven@themaw.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/autofs4/root.c