Hi Ian, list,
this is just a ping to remind you of this little patch. It still applies
to the latest kernel source, and it still fixes our problems we have
with nested mount maps such as (taken from the map for /vol/):
eclipse-3.2 \
/bin -rw,nosuid
fileserver:/export/stud/vol/eclipse-3.2/bin/linx86 \
/include -rw,nosuid
fileserver:/export/stud/vol/eclipse-3.2/include \
/lib -rw,nosuid
fileserver:/export/stud/vol/eclipse-3.2/lib/linx86 \
/man -rw,nosuid fileserver:/export/stud/vol/eclipse-3.2/man
\
/share -rw,nosuid
fileserver:/export/stud/vol/eclipse-3.2/share
eclipse \
/bin -rw,nosuid :/vol/eclipse-3.2/bin \
/include -rw,nosuid :/vol/eclipse-3.2/include \
/lib -rw,nosuid :/vol/eclipse-3.2/lib \
/man -rw,nosuid :/vol/eclipse-3.2/man \
/share -rw,nosuid :/vol/eclipse-3.2/share \
and:
jdk -rw,nosuid :/vol/jdk-1.6
jdk-1.6 -rw,nosuid :/vol/jdk-1.6.6
jdk-1.6.6 -rw,nosuid fileserver:/export/stud/vol/jdk-1.6.6/linx86
We're running this since quite a while, and have not encountered any
serious problems since then. Home's and volumes get unmounted as they
should, and (even more important) accessing /vol/jdk or /vol/eclipse/bin
now actually works (it did _not_ without the patch).
I'm just tired of constantly rebuilding distribution kerneles :)
--
Lukas
patch:
diff -ru linux-2.6-2.6.23-a/fs/autofs4/root.c linux-2.6-2.6.23/fs/autofs4/root.c
--- linux-2.6-2.6.23-a/fs/autofs4/root.c 2007-11-30 16:20:33.000000000
+0100
+++ linux-2.6-2.6.23/fs/autofs4/root.c 2007-11-30 16:22:24.000000000 +0100
@@ -19,6 +19,9 @@
#include <linux/time.h>
#include "autofs_i.h"
+#define DIRECT_TRIGGER_FLAGS (LOOKUP_CONTINUE|LOOKUP_DIRECTORY|LOOKUP_ACCESS)
+
+
static int autofs4_dir_symlink(struct inode *,struct dentry *,const char *);
static int autofs4_dir_unlink(struct inode *,struct dentry *);
static int autofs4_dir_rmdir(struct inode *,struct dentry *);
@@ -291,7 +294,7 @@
return status;
}
/* Trigger mount for path component or follow link */
- } else if (flags & (LOOKUP_CONTINUE | LOOKUP_DIRECTORY) ||
+ } else if (flags & DIRECT_TRIGGER_FLAGS ||
current->link_count) {
DPRINTK("waiting for mount name=%.*s",
dentry->d_name.len, dentry->d_name.name);
@@ -335,7 +338,7 @@
nd->flags);
/* If it's our master or we shouldn't trigger a mount we're done */
- lookup_type = nd->flags & (LOOKUP_CONTINUE | LOOKUP_DIRECTORY);
+ lookup_type = nd->flags & DIRECT_TRIGGER_FLAGS;
if (oz_mode || !lookup_type)
goto done;
_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs