Date: Tue, 8 Aug 1995 19:47:20 +1000 (EST) From: David Dawes <dawes@physics.usyd.edu.au> To: simon@masi.ibp.fr Cc: freebsd-hackers@freebsd.org Subject: Re: patch adding the 'noauto' switch to 'mount' Message-ID: <199508080947.AA18633@physics.su.oz.au> In-Reply-To: <199508080842.KAA00358@neuromancer.ibp.fr> from "simon@masi.ibp.fr" at Aug 8, 95 10:42:21 am
next in thread | previous in thread | raw e-mail | index | archive | help
>> > +#define MNT_NOAUTO 0x00000003 /* don't mount with 'mount -a' */
>>
>> WRONG VALUE!!! These are bit fields, not integers. MNT_NOAUTO is now
>> the same as -o ro,sync :-(. MNT_NOAUTO does _not_ belong on in this
>> set of bit patterns, the kernel could care less about this! We are also
>> out of bits for some structures that try to store this value :-(.
>
>Argh :-O
>
>You're right on both points. The kernel doesn't even see that flag, since
>it's processed prior to the actual mounting of the FS, and it would
>be a Bad Thing to waste a precious bit-mask value on it (the first
>available one is 0x04000000).
>
>We need to have MNT_NOAUTO defined, though.
>how about :
>
>#define MNT_NOAUTO 0x00000000
>
>This shouldn't interfere with the existing flags (right ?) and it wouldn't
>really waste a value.
>
>What do you think ? Any other ideas ?
The following patch seems to do the right thing for me (I've only tested
it with cd9660 so far though, and I haven't really looked into it far
enough to know if it causes other problems).
David
--------
Index: usr/src/sbin/mount/mntopts.h
*** 1.1.1.2 1995/06/12 15:05:20
--- mntopts.h 1995/08/08 09:42:47
***************
*** 61,66 ****
--- 61,68 ----
#define MOPT_RO { "ro", 0, MNT_RDONLY, 0 }
#define MOPT_RW { "rw", 1, MNT_RDONLY, 0 }
+ #define MOPT_NOAUTO { "auto", 1, 0, 0 }
+
#define MOPT_FSTAB_COMPAT \
MOPT_RO, \
MOPT_RW
***************
*** 68,73 ****
--- 70,76 ----
/* Standard options which all mounts can understand. */
#define MOPT_STDOPTS \
MOPT_FSTAB_COMPAT, \
+ MOPT_NOAUTO, \
MOPT_NODEV, \
MOPT_NOEXEC, \
MOPT_NOSUID, \
Index: usr/src/sbin/mount/mount.c
*** 1.1.1.2 1995/03/27 05:22:08
--- mount.c 1995/08/08 00:50:54
***************
*** 166,175 ****
continue;
if (badvfsname(fs->fs_vfstype, vfslist))
continue;
if (mountfs(fs->fs_vfstype, fs->fs_spec,
! fs->fs_file, init_flags, options,
! fs->fs_mntops))
! rval = 1;
}
else {
if ((mntsize = getmntinfo(&mntbuf, MNT_NOWAIT)) == 0)
--- 166,177 ----
continue;
if (badvfsname(fs->fs_vfstype, vfslist))
continue;
+ if (!strstr(fs->fs_mntops, "noauto")) {
if (mountfs(fs->fs_vfstype, fs->fs_spec,
! fs->fs_file, init_flags, options,
! fs->fs_mntops))
! rval = 1;
! }
}
else {
if ((mntsize = getmntinfo(&mntbuf, MNT_NOWAIT)) == 0)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508080947.AA18633>
