summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>1996-04-25 11:04:01 +0000
committerderaadt <deraadt@openbsd.org>1996-04-25 11:04:01 +0000
commitdde996756c7d1f5568b1549fab5f8b905e396089 (patch)
treeefe73c4355f3a034568dd2c1fec9fe4707c79f9c
parentRegenerated from new syscalls.master (diff)
downloadwireguard-openbsd-dde996756c7d1f5568b1549fab5f8b905e396089.tar.xz
wireguard-openbsd-dde996756c7d1f5568b1549fab5f8b905e396089.zip
permit quotas to work on mfs; problem reported by rdante@pnet.net
-rw-r--r--sbin/quotacheck/quotacheck.c3
-rw-r--r--usr.bin/quota/quota.c8
-rw-r--r--usr.sbin/edquota/edquota.c5
-rw-r--r--usr.sbin/quot/quot.c6
-rw-r--r--usr.sbin/quotaon/quotaon.c15
-rw-r--r--usr.sbin/repquota/repquota.c5
6 files changed, 27 insertions, 15 deletions
diff --git a/sbin/quotacheck/quotacheck.c b/sbin/quotacheck/quotacheck.c
index 3c1e3fca961..08db8485bc9 100644
--- a/sbin/quotacheck/quotacheck.c
+++ b/sbin/quotacheck/quotacheck.c
@@ -223,7 +223,8 @@ needchk(fs)
if (strcmp(fs->fs_type, FSTAB_RW))
return (NULL);
if (strcmp(fs->fs_vfstype, "ffs") &&
- strcmp(fs->fs_vfstype, "ufs"))
+ strcmp(fs->fs_vfstype, "ufs") &&
+ strcmp(fs->fs_vfstype, "mfs"))
return (NULL);
if ((qnp = malloc(sizeof(*qnp))) == NULL)
err(1, "%s", strerror(errno));
diff --git a/usr.bin/quota/quota.c b/usr.bin/quota/quota.c
index 6ec5d5f9b5a..c278849c676 100644
--- a/usr.bin/quota/quota.c
+++ b/usr.bin/quota/quota.c
@@ -42,7 +42,7 @@ static char copyright[] =
#ifndef lint
/*static char sccsid[] = "from: @(#)quota.c 8.1 (Berkeley) 6/6/93";*/
-static char rcsid[] = "$Id: quota.c,v 1.3 1996/04/21 23:43:38 deraadt Exp $";
+static char rcsid[] = "$Id: quota.c,v 1.4 1996/04/25 11:04:06 deraadt Exp $";
#endif /* not lint */
/*
@@ -452,9 +452,9 @@ getprivs(id, quotatype)
if (strncmp(fst[i].f_fstypename, "nfs", MFSNAMELEN) == 0) {
if (getnfsquota(&fst[i], NULL, qup, id, quotatype) == 0)
continue;
- } else if ((strncmp(fst[i].f_fstypename, "ffs",
- MFSNAMELEN) == 0) || (strncmp(fst[i].f_fstypename, "ufs",
- MFSNAMELEN) == 0)) {
+ } else if (!strncmp(fst[i].f_fstypename, "ffs", MFSNAMELEN) ||
+ !strncmp(fst[i].f_fstypename, "ufs", MFSNAMELEN) ||
+ !strncmp(fst[i].f_fstypename, "mfs", MFSNAMELEN)) {
/*
* XXX
* UFS filesystems must be in /etc/fstab, and must
diff --git a/usr.sbin/edquota/edquota.c b/usr.sbin/edquota/edquota.c
index 454ac052562..a78afda4325 100644
--- a/usr.sbin/edquota/edquota.c
+++ b/usr.sbin/edquota/edquota.c
@@ -42,7 +42,7 @@ static char copyright[] =
#ifndef lint
/*static char sccsid[] = "from: @(#)edquota.c 8.1 (Berkeley) 6/6/93";*/
-static char *rcsid = "$Id: edquota.c,v 1.5 1996/04/21 23:40:32 deraadt Exp $";
+static char *rcsid = "$Id: edquota.c,v 1.6 1996/04/25 11:04:08 deraadt Exp $";
#endif /* not lint */
/*
@@ -223,7 +223,8 @@ getprivs(id, quotatype)
qcmd = QCMD(Q_GETQUOTA, quotatype);
while (fs = getfsent()) {
if (strcmp(fs->fs_vfstype, "ffs") &&
- strcmp(fs->fs_vfstype, "ufs"))
+ strcmp(fs->fs_vfstype, "ufs") &&
+ strcmp(fs->fs_vfstype, "mfs"))
continue;
if (!hasquota(fs, quotatype, &qfpathname))
continue;
diff --git a/usr.sbin/quot/quot.c b/usr.sbin/quot/quot.c
index 2c0b6f583f0..63b442b761d 100644
--- a/usr.sbin/quot/quot.c
+++ b/usr.sbin/quot/quot.c
@@ -30,7 +30,7 @@
*/
#ifndef lint
-static char rcsid[] = "$Id: quot.c,v 1.2 1995/11/06 21:40:54 deraadt Exp $";
+static char rcsid[] = "$Id: quot.c,v 1.3 1996/04/25 11:04:11 deraadt Exp $";
#endif /* not lint */
#include <sys/param.h>
@@ -567,7 +567,9 @@ int main(argc,argv)
if (all) {
cnt = getmntinfo(&mp,MNT_NOWAIT);
for (; --cnt >= 0; mp++) {
- if (!strncmp(mp->f_fstypename, MOUNT_FFS, MFSNAMELEN)) {
+ if (!strncmp(mp->f_fstypename, MOUNT_FFS, MFSNAMELEN) ||
+ !strncmp(mp->f_fstypename, MOUNT_MFS, MFSNAMELEN) ||
+ !strncmp(mp->f_fstypename, "ufs", MFSNAMELEN)) {
if (nm = strrchr(mp->f_mntfromname,'/')) {
sprintf(dev,"/dev/r%s",nm + 1);
nm = dev;
diff --git a/usr.sbin/quotaon/quotaon.c b/usr.sbin/quotaon/quotaon.c
index bb0fdc0aeb0..5dd2769331c 100644
--- a/usr.sbin/quotaon/quotaon.c
+++ b/usr.sbin/quotaon/quotaon.c
@@ -42,7 +42,7 @@ static char copyright[] =
#ifndef lint
/*static char sccsid[] = "from: @(#)quotaon.c 8.1 (Berkeley) 6/6/93";*/
-static char *rcsid = "$Id: quotaon.c,v 1.5 1996/04/21 23:41:36 deraadt Exp $";
+static char *rcsid = "$Id: quotaon.c,v 1.6 1996/04/25 11:04:13 deraadt Exp $";
#endif /* not lint */
/*
@@ -117,7 +117,8 @@ main(argc, argv)
if (strcmp(fs->fs_type, FSTAB_RW))
continue;
if (strcmp(fs->fs_vfstype, "ffs") &&
- strcmp(fs->fs_vfstype, "ufs"))
+ strcmp(fs->fs_vfstype, "ufs") &&
+ strcmp(fs->fs_vfstype, "mfs"))
continue;
if (aflag) {
if (gflag && hasquota(fs, GRPQUOTA, &qfnp))
@@ -236,6 +237,7 @@ hasquota(fs, type, qfnamep)
/*
* Verify file system is mounted and not readonly.
+ * MFS is special -- it puts "mfs:" in the kernel's mount table
*/
readonly(fs)
register struct fstab *fs;
@@ -245,8 +247,13 @@ readonly(fs)
if (statfs(fs->fs_file, &fsbuf) < 0 ||
strcmp(fsbuf.f_mntonname, fs->fs_file) ||
strcmp(fsbuf.f_mntfromname, fs->fs_spec)) {
- printf("%s: not mounted\n", fs->fs_file);
- return (1);
+ if (strcmp(fs->fs_file, "mfs") ||
+ memcmp(fsbuf.f_mntfromname, "mfs:", sizeof("mfs:")-1))
+ ;
+ else {
+ printf("%s: not mounted\n", fs->fs_file);
+ return (1);
+ }
}
if (fsbuf.f_flags & MNT_RDONLY) {
printf("%s: mounted read-only\n", fs->fs_file);
diff --git a/usr.sbin/repquota/repquota.c b/usr.sbin/repquota/repquota.c
index ec07841efe4..7db5c19acb6 100644
--- a/usr.sbin/repquota/repquota.c
+++ b/usr.sbin/repquota/repquota.c
@@ -42,7 +42,7 @@ static char copyright[] =
#ifndef lint
/*static char sccsid[] = "from: @(#)repquota.c 8.1 (Berkeley) 6/6/93";*/
-static char *rcsid = "$Id: repquota.c,v 1.5 1996/04/21 23:41:45 deraadt Exp $";
+static char *rcsid = "$Id: repquota.c,v 1.6 1996/04/25 11:04:14 deraadt Exp $";
#endif /* not lint */
/*
@@ -133,7 +133,8 @@ main(argc, argv)
setfsent();
while ((fs = getfsent()) != NULL) {
if (strcmp(fs->fs_vfstype, "ffs") &&
- strcmp(fs->fs_vfstype, "ufs"))
+ strcmp(fs->fs_vfstype, "ufs") &&
+ strcmp(fs->fs_vfstype, "mfs"))
continue;
if (aflag) {
if (gflag && hasquota(fs, GRPQUOTA, &qfnp))