OpenCloudOS-Kernel/fs/autofs4
Ian Kent a45440f05e autofs4 - fix get_next_positive_subdir()
Following a report of a crash during an automount expire I found that
the locking in fs/autofs4/expire.c:get_next_positive_subdir() was wrong.
Not only is the locking wrong but the function is more complex than it
needs to be.

The function is meant to calculate (and dget) the next entry in the list
of directories contained in the root of an autofs mount point (an autofs
indirect mount to be precise). The main problem was that the d_lock of
the owner of the list was not being taken when walking the list, which
lead to list corruption under load. The only other lock that needs to
be taken is against the next dentry candidate so it can be checked for
usability.

Signed-off-by: Ian Kent <raven@themaw.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-08-16 11:58:28 -07:00
..
Kconfig fs/Kconfig: move autofs, autofs4 out 2009-01-22 13:15:54 +03:00
Makefile autofs4: add miscellaneous device for ioctls 2008-10-16 11:21:39 -07:00
autofs_i.h autofs: make the autofsv5 packet file descriptor use a packetized pipe 2012-04-29 13:30:08 -07:00
dev-ioctl.c switch dentry_open() to struct path, make it grab references itself 2012-07-23 00:01:29 +04:00
expire.c autofs4 - fix get_next_positive_subdir() 2012-08-16 11:58:28 -07:00
init.c autofs: set things up *before* registering fs type 2012-03-20 21:29:46 -04:00
inode.c avoid iput() from flusher thread 2012-05-28 09:54:45 -07:00
root.c stop passing nameidata to ->lookup() 2012-07-14 16:34:32 +04:00
symlink.c autofs4: keep symlink body in inode->i_private 2011-01-18 01:21:27 -05:00
waitq.c Revert "autofs: work around unhappy compat problem on x86-64" 2012-04-28 08:29:56 -07:00