autofs4: autofs4_wait() vs. autofs4_catatonic_mode() race
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 11 Jan 2012 03:20:12 +0000 (22:20 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 11 Jan 2012 05:19:12 +0000 (00:19 -0500)
commit4041bcdc7bef06a2fb29c57394c713a74bd13b08
treeadaf5dee1b8312cdd37a2b37551770af461212a3
parentb3f2a92447b8443360ac117a3d7c06689562a70c
autofs4: autofs4_wait() vs. autofs4_catatonic_mode() race

We need to recheck ->catatonic after autofs4_wait() got ->wq_mutex
for good, or we might end up with wq inserted into queue after
autofs4_catatonic_mode() had done its thing.  It will stick there
forever, since there won't be anything to clear its ->name.name.

A bit of a complication: validate_request() drops and regains ->wq_mutex.
It actually ends up the most convenient place to stick the check into...

Acked-by: Ian Kent <raven@themaw.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/autofs4/waitq.c