Re: 2.1.51-1 -- mount borked

Andries.Brouwer@cwi.nl
Wed, 20 Aug 1997 11:50:31 +0200 (MET DST)


Jason Burrell:

: Does mount-2.7 even exist? The mount utils in the latest Slackware
: distribution are classed as "[u]mount-2.7". For all I know it might be
: flawed, and the "bug" is that I'm using some incredibly old version of mount.

The program mount is just a wrapper for the system call.
If mount or umount fail it is always the kernel.

(So, even a mount from 1992 is usable.
A more recent mount will:
- attempt to give helpful error messages when the system call fails
- support loop mounts
- support MANDLOCK and NOATIME
- support NFS version 3
- mount all filesystems simultaneously instead of one by one (with -aF)
- remount filesystems readonly whem umount fails (with -r)
etc. All sugar and mostly superfluous.)

None of this belongs on the kernel list - so let me add a
kernel-related remark. Recently <linux/fs.h> was changed
to have
#include <asm/bitops.h>
All user programs, like mount, that include <linux/fs.h>,
get very unhappy about the ensuing namespace pollution
and complaints about declarations without prototype.
[In fact the last three releases of mount were all attempts
to come with a source that compiles cleanly with old and new kernels,
and with old and new libc.]

There is a little information that is useful, even necessary,
for user space programs - manifest constants like
#define MS_NOATIME 1024 /* Do not update access times. */
But most of <linux/fs.h> is kernel-only stuff.
In the past I have on half a dozen occasions moved things past
the #ifdef __KERNEL__ mark. But kernel hackers keep breaking
this stuff. I think we need a formal separation - a split of
include/linux into include/linux-public and include/linux-kernel,
so that everybody is aware that changes to include/linux-public
will affect user programs, and where in include/linux-public
no symbols are used except precisely those that should be exported.

(And probably linux-public should be called linux, and linux-kernel
should be called kernel, so that only the kernel source changes,
and the outside world is unaware of any change.)

Andries