Re: Let's make ext2fs into lfs (Was: Is anyone using EXT FS)

Chris Evans (chris.evans@lady-margaret-hall.oxford.ac.uk)
Sat, 23 Mar 1996 04:28:59 +0000 (GMT)


I've having slight trouble compiling the latest quota utilities, 1.51,
under linux-1.3.77.

Extract:

cc -O6 -fexpensive-optimizations -fstrength-reduce -c quotacheck.c -o
quotacheck.o
In file included from /usr/include/linux/quota.h:73,
from quotacheck.c:27:
/usr/include/linux/mount.h:15: parse error before `kdev_t'
/usr/include/linux/mount.h:15: warning: no semicolon at end of struct or union
/usr/include/linux/mount.h:25: parse error before `}'
/usr/include/linux/mount.h:27: parse error before `dev'
quotacheck.c: In function `main':
quotacheck.c:246: `MNTOPT_NOQUOTA' undeclared (first use this function)
quotacheck.c:246: (Each undeclared identifier is reported only once
quotacheck.c:246: for each function it appears in.)
/usr/include/linux/mount.h: At top level:
/usr/include/linux/mount.h:19: storage size of `mnt_sem' isn't known
make: *** [quotacheck.o] Error 1

A parse error occurring in a kernel .h file? Sounds unpleasant to me.
Especially when the file appears file (see below).

Note that I can easily solve the MNTOPT_NOQUOTA undeclared problem by
using a mntent.h file from a newer libc (I'm on 5.0.9, just re-installed
the system), or alternately using the mntent.h file coming with the
package itself.

So can anyone help me get the quota utilities to compile? I've got some
old binaries lying around but I beleive they are the buggy ones where
quotacheck incorrectly calculates usage for some users.

Any help appreciated.

Cheers,
-- Chris

Extract from /usr/src/linux/include/linux/mount.h

struct vfsmount
{
kdev_t mnt_dev; /* Device this applies to */
char *mnt_devname; /* Name of device e.g. /dev/dsk/hda1 */
char *mnt_dirname; /* Name of directory mounted on */
unsigned int mnt_flags; /* Flags of this device */
struct semaphore mnt_sem; /* lock device while I/O in progress */
struct super_block *mnt_sb; /* pointer to superblock */
struct file *mnt_quotas[MAXQUOTAS]; /* fp's to quotafiles */
time_t mnt_iexp[MAXQUOTAS]; /* expiretime for inodes */
time_t mnt_bexp[MAXQUOTAS]; /* expiretime for blocks */
struct vfsmount *mnt_next; /* pointer to next in linkedlist */
};

>> PGP key available on request <<
>>Presence in pub available on request<<