...when I run this with /misc/salusa/scratch/foo as the first argument, then unmounting /misc/salusa triggers the panic. Ian, were you trying to reproduce this on a single-cpu box before? If so, then that might explain why you couldn't get it to happen.
With this, I think we can rule out inotify as the problem. The issue is something with simultaneous d_automounts running.
I rolled up a small test program that can reproduce this now without a gui:
------- ------- ---[snip] ------- ------- ----
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int
main(int argc, char **argv)
{
struct stat buf;
fork();
stat(argv[1], &buf);
return 0; ------- ---[snip] ------- ------- ----
}
-------
...when I run this with /misc/salusa/ scratch/ foo as the first argument, then unmounting /misc/salusa triggers the panic. Ian, were you trying to reproduce this on a single-cpu box before? If so, then that might explain why you couldn't get it to happen.
With this, I think we can rule out inotify as the problem. The issue is something with simultaneous d_automounts running.