==> Regarding [autofs] backfstype patch.; Hans Deragon <[EMAIL PROTECTED]> adds:
hans> Greetings. Attached, my patch for supporting backfstype. If the OS
hans> is Linux and cachefs is detected, this fs is ignored and no attempt
hans> is made to mount a cachefs kernel module (none exist). This way we
hans> avoid useless error messages in syslog.
First off, thanks for taking the initiative!
Now, to business. Ian meant to say that you _don't_ need to do #ifdef
__linux__, as this is the Linux automounter. It won't work on any other
OS.
I'm not sure I like the special casing for cachefs, but that's ultimately
Ian's call. I just attempted a mount -t cachefs on my machine, and got no
messages in the logs. I wonder what's trying the modprobe.
I've taken a cursory look at your patch, and inlined some initial
comments. I'll try to take a closer look at it some time this week.
Thanks!
Jeff
>diff -Nur autofs-4.1.3.org/modules/parse_sun.c autofs-4.1.3/modules/parse_sun.c
>--- autofs-4.1.3.org/modules/parse_sun.c 2004-05-18 08:22:40.000000000 -0400
>+++ autofs-4.1.3/modules/parse_sun.c 2004-06-29 14:54:49.000000000 -0400
>@@ -22,7 +22,6 @@
> #include <fcntl.h>
> #include <unistd.h>
> #include <stdlib.h>
>-#include <syslog.h>
> #include <string.h>
> #include <syslog.h>
> #include <ctype.h>
>@@ -516,17 +515,20 @@
> static int sun_mount(const char *root, const char *name, int namelen,
> const char *loc, int loclen, const char *options)
> {
>- char *fstype = "nfs"; /* Default filesystem type */
>+ char *fstype = "nfs"; /* Default filesystem type */
Bad form to change spacing.
[snip]
>@@ -551,6 +553,15 @@
> fstype = alloca(typelen + 1);
> memcpy(fstype, cp + 7, typelen);
> fstype[typelen] = '\0';
>+ } else if (strncmp("backfstype=", cp, 11) == 0) {
>+ int typelen = comma - (cp + 11);
>+ backfstype = alloca(typelen + 1);
>+ memcpy(backfstype, cp + 11, typelen);
>+ backfstype[typelen] = '\0';
>+#if 0
>+ } else if (strncmp("cachedir=", cp, 9) == 0) {
>+ /* Ignoring cachedir, since cachefs is not supported. */
>+#endif
Ick.
[snip]
>+#ifdef __linux__
>+ if (!strcmp(curfstype, "cachefs")) {
>+ /* cachefs not supported for Linux. We do not even try
>because when
>+ we try, mount will complain about the module being absent.
>This is
>+ not desired because if backfstype parameter is provided and
>works,
>+ we sure do not want any error messages reported to syslog.
>*/
>+ debug("cachefs not implemented under Linux and thus ignored.");
>+ continue;
>+ }
>+#endif
Don't need the ifdef. Also, try to keep w/in 80 columns, please.
>+
>+ if (!strcmp(curfstype, "nfs")) {
>+ /* Removing cachedir parameter which is not understood by nfs.
>*/
>+ start=strstr(noptions, ",cachedir=");
You don't really need to do this. We use the sloppy (-s) option to mount,
which just ignore unrecognized options.
[snip]
>+ if(!rv)
>+ {
>+ break;
>+ }
Keep to coding style: { on same line as if.
_______________________________________________
autofs mailing list
[EMAIL PROTECTED]
http://linux.kernel.org/mailman/listinfo/autofs