Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Add a new member to struct vfsstat and grow the unused members



details:   https://anonhg.NetBSD.org/src/rev/03247c6654f7
branches:  trunk
changeset: 454606:03247c6654f7
user:      christos <christos%NetBSD.org@localhost>
date:      Sun Sep 22 22:59:37 2019 +0000

description:
Add a new member to struct vfsstat and grow the unused members
The new member is caled f_mntfromlabel and it is the dkw_wname
of the corresponding wedge. This is now used by df -W to display
the mountpoint name as NAME=

diffstat:

 bin/df/df.c                                 |   56 +-------
 distrib/sets/lists/base/shl.mi              |    6 +-
 distrib/sets/lists/debug/shl.mi             |    6 +-
 distrib/sets/lists/modules/ad.arm           |    4 +-
 distrib/sets/lists/modules/ad.mips          |    4 +-
 distrib/sets/lists/modules/md.amd64         |    4 +-
 distrib/sets/lists/modules/md.sparc64       |    4 +-
 distrib/sets/lists/modules/mi               |    4 +-
 lib/libc/compat/gen/Makefile.inc            |    5 +-
 lib/libc/compat/gen/compat___getmntinfo13.c |   84 +++++++++++++
 lib/libc/compat/gen/compat_opendir.c        |    4 +-
 lib/libc/compat/sys/Makefile.inc            |    8 +-
 lib/libc/compat/sys/compat___fhstatvfs140.c |   59 +++++++++
 lib/libc/compat/sys/compat___fhstatvfs40.c  |   58 +++++++++
 lib/libc/compat/sys/compat_fhstatvfs.c      |   23 +-
 lib/libc/compat/sys/compat_fhstatvfs1.c     |   20 +-
 lib/libc/compat/sys/compat_statfs.c         |   18 +-
 lib/libc/compat/sys/compat_statvfs.c        |  121 +++++++++++++++++++
 lib/libc/include/namespace.h                |    5 +-
 lib/libc/shlib_version                      |    4 +-
 lib/libc/sys/Makefile.inc                   |   10 +-
 lib/libc/sys/statvfs.c                      |   18 +--
 share/man/man5/statvfs.5                    |   57 ++++----
 sys/compat/common/compat_90_mod.c           |   83 +++++++++++++
 sys/compat/common/compat_mod.h              |   11 +-
 sys/compat/common/files.common              |   10 +-
 sys/compat/common/vfs_syscalls_20.c         |   78 +++---------
 sys/compat/common/vfs_syscalls_30.c         |   26 ++-
 sys/compat/common/vfs_syscalls_90.c         |  163 ++++++++++++++++++++++++++
 sys/compat/netbsd32/files.netbsd32          |    3 +-
 sys/compat/netbsd32/netbsd32.h              |   35 +++++-
 sys/compat/netbsd32/netbsd32_compat_90.c    |  173 ++++++++++++++++++++++++++++
 sys/compat/netbsd32/netbsd32_conv.h         |   45 ++++++-
 sys/compat/netbsd32/netbsd32_fs.c           |   16 +-
 sys/compat/netbsd32/syscalls.conf           |    4 +-
 sys/compat/netbsd32/syscalls.master         |   32 +++-
 sys/conf/compat_netbsd90.config             |    9 +
 sys/conf/files                              |    5 +-
 sys/kern/init_sysent.c                      |   86 ++++++++-----
 sys/kern/syscalls.conf                      |    4 +-
 sys/kern/syscalls.master                    |   34 +++-
 sys/kern/vfs_subr.c                         |    6 +-
 sys/kern/vfs_syscalls.c                     |   13 +-
 sys/miscfs/specfs/spec_vnops.c              |   14 +-
 sys/modules/Makefile                        |    5 +-
 sys/modules/compat_90/Makefile              |   14 ++
 sys/modules/compat_netbsd32_90/Makefile     |   15 ++
 sys/sys/param.h                             |    4 +-
 sys/sys/statvfs.h                           |   53 ++++----
 usr.bin/ktruss/dump.c                       |    6 +-
 50 files changed, 1197 insertions(+), 332 deletions(-)

diffs (truncated from 2627 to 300 lines):

diff -r e80e69078498 -r 03247c6654f7 bin/df/df.c
--- a/bin/df/df.c       Sun Sep 22 19:51:18 2019 +0000
+++ b/bin/df/df.c       Sun Sep 22 22:59:37 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: df.c,v 1.94 2019/09/18 20:14:44 christos Exp $ */
+/*     $NetBSD: df.c,v 1.95 2019/09/22 22:59:37 christos Exp $ */
 
 /*
  * Copyright (c) 1980, 1990, 1993, 1994
@@ -45,15 +45,13 @@
 #if 0
 static char sccsid[] = "@(#)df.c       8.7 (Berkeley) 4/2/94";
 #else
-__RCSID("$NetBSD: df.c,v 1.94 2019/09/18 20:14:44 christos Exp $");
+__RCSID("$NetBSD: df.c,v 1.95 2019/09/22 22:59:37 christos Exp $");
 #endif
 #endif /* not lint */
 
 #include <sys/param.h>
 #include <sys/stat.h>
 #include <sys/mount.h>
-#include <sys/disk.h>
-#include <sys/ioctl.h>
 
 #include <assert.h>
 #include <err.h>
@@ -69,13 +67,11 @@
 #include <util.h>
 
 static char    *getmntpt(const char *);
-static void     prtstat(const struct dkwedge_info *, const struct statvfs *,
-    int);
+static void     prtstat(const struct statvfs *, int);
 static int      selected(const char *, size_t);
 static void     maketypelist(char *);
 static size_t   regetmntinfo(struct statvfs **, size_t);
 __dead static void usage(void);
-static struct dkwedge_info *getwedgeinfo(const struct statvfs *, size_t);
 static void     prthumanval(int64_t, const char *);
 static void     prthuman(const struct statvfs *, int64_t, int64_t);
 
@@ -88,7 +84,6 @@
 {
        struct stat stbuf;
        struct statvfs *mntbuf;
-       struct dkwedge_info *wedge_info;
        int ch, maxwidth, width;
        size_t i, mntcount;
        char *mntpt;
@@ -208,18 +203,15 @@
                }
        }
 
-       wedge_info = Wflag ? getwedgeinfo(mntbuf, mntcount) : NULL;
-
        maxwidth = 0;
        for (i = 0; i < mntcount; i++) {
-               width = (int)strlen(Wflag && wedge_info[i].dkw_wname[0] ?
-                   (const char *)wedge_info[i].dkw_wname :
-                   mntbuf[i].f_mntfromname);
+               width = (int)strlen(Wflag && mntbuf[i].f_mntfromlabel[0] ?
+                   mntbuf[i].f_mntfromlabel : mntbuf[i].f_mntfromname);
                if (width > maxwidth)
                        maxwidth = width;
        }
        for (i = 0; i < mntcount; i++)
-               prtstat(&wedge_info[i], &mntbuf[i], maxwidth);
+               prtstat(&mntbuf[i], maxwidth);
        return 0;
 }
 
@@ -293,33 +285,6 @@
        av[i] = NULL;
 }
 
-static struct dkwedge_info *
-getwedgeinfo(const struct statvfs *mntbuf, size_t mntcount)
-{
-       struct dkwedge_info *wi = calloc(mntcount, sizeof(*wi));
-       char buf[1024];
-
-       if (wi == NULL)
-               err(EXIT_FAILURE, "can't allocate wedge info array");
-       
-       for (size_t i = 0; i < mntcount; i++) {
-               const char *dname = mntbuf[i].f_mntfromname;
-               const char *rdn = strrchr(dname, '/');
-               if (rdn == NULL) {
-                       continue;
-               }
-               rdn++;
-               int fd = opendisk(rdn, O_RDONLY, buf, sizeof(buf), false);
-               if (fd == -1)
-                       err(EXIT_FAILURE, "opendisk on `%s' failed", rdn);
-               if (ioctl(fd, DIOCGWEDGEINFO, &wi[i]) == -1) {
-                       warn("DIOCGWEDGEINFO for `%s' failed", buf);
-               }
-               close(fd);
-       }
-       return wi;
-}
-
 /*
  * Make a pass over the filesystem info in ``mntbuf'' filtering out
  * filesystem types not in ``fsmask'' and possibly re-stating to get
@@ -396,8 +361,7 @@
  * Print out status about a filesystem.
  */
 static void
-prtstat(const struct dkwedge_info *dkwp, const struct statvfs *sfsp,
-    int maxwidth)
+prtstat(const struct statvfs *sfsp, int maxwidth)
 {
        static long blocksize;
        static int headerlen, timesthrough;
@@ -407,11 +371,11 @@
        int64_t used, availblks, inodes;
        int64_t bavail;
        char pb[64];
-       char mntfromname[sizeof(sfsp->f_mntfromname)];
+       char mntfromname[sizeof(sfsp->f_mntfromname) + 10];
 
-       if (Wflag && dkwp->dkw_wname[0]) {
+       if (Wflag && sfsp->f_mntfromlabel[0]) {
                snprintf(mntfromname, sizeof(mntfromname), "NAME=%s",
-                   (const char *)dkwp->dkw_wname);
+                   sfsp->f_mntfromlabel);
        } else {
                strlcpy(mntfromname, sfsp->f_mntfromname, sizeof(mntfromname));
        }
diff -r e80e69078498 -r 03247c6654f7 distrib/sets/lists/base/shl.mi
--- a/distrib/sets/lists/base/shl.mi    Sun Sep 22 19:51:18 2019 +0000
+++ b/distrib/sets/lists/base/shl.mi    Sun Sep 22 22:59:37 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.871 2019/09/22 18:45:19 brad Exp $
+# $NetBSD: shl.mi,v 1.872 2019/09/22 22:59:37 christos Exp $
 #
 # Note:        Don't delete entries from here - mark them as "obsolete" instead,
 #      unless otherwise stated below.
@@ -21,7 +21,7 @@
 ./lib/libblacklist.so.0.0                      base-sys-shlib          dynamicroot
 ./lib/libc.so                                  base-sys-shlib          dynamicroot
 ./lib/libc.so.12                               base-sys-shlib          dynamicroot
-./lib/libc.so.12.213                           base-sys-shlib          dynamicroot
+./lib/libc.so.12.214                           base-sys-shlib          dynamicroot
 ./lib/libcrypt.so                              base-sys-shlib          dynamicroot
 ./lib/libcrypt.so.1                            base-sys-shlib          dynamicroot
 ./lib/libcrypt.so.1.0                          base-sys-shlib          dynamicroot
@@ -245,7 +245,7 @@
 ./usr/lib/libc++.so.1.0                                base-sys-shlib          compatfile,libcxx
 ./usr/lib/libc.so                              base-sys-shlib          compatfile
 ./usr/lib/libc.so.12                           base-sys-shlib          compatfile
-./usr/lib/libc.so.12.213                       base-sys-shlib          compatfile
+./usr/lib/libc.so.12.214                       base-sys-shlib          compatfile
 ./usr/lib/libcdk.so                            base-obsolete           compatfile,obsolete
 ./usr/lib/libcom_err.so                                base-krb5-shlib         compatfile,kerberos
 ./usr/lib/libcom_err.so.8                      base-krb5-shlib         compatfile,kerberos
diff -r e80e69078498 -r 03247c6654f7 distrib/sets/lists/debug/shl.mi
--- a/distrib/sets/lists/debug/shl.mi   Sun Sep 22 19:51:18 2019 +0000
+++ b/distrib/sets/lists/debug/shl.mi   Sun Sep 22 22:59:37 2019 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: shl.mi,v 1.228 2019/09/06 11:12:06 christos Exp $
+# $NetBSD: shl.mi,v 1.229 2019/09/22 22:59:37 christos Exp $
 ./usr/lib/libbfd_g.a                                           comp-c-debuglib debuglib,compatfile,binutils
 ./usr/libdata/debug/lib                                                base-sys-usr    debug,dynamicroot,compatdir
 ./usr/libdata/debug/lib/libblacklist.so.0.0.debug              comp-sys-debug  debug,dynamicroot
-./usr/libdata/debug/lib/libc.so.12.213.debug                   comp-sys-debug  debug,dynamicroot
+./usr/libdata/debug/lib/libc.so.12.214.debug                   comp-sys-debug  debug,dynamicroot
 ./usr/libdata/debug/lib/libcrypt.so.1.0.debug                  comp-sys-debug  debug,dynamicroot
 ./usr/libdata/debug/lib/libcrypto.so.12.0.debug                        comp-sys-debug  debug,dynamicroot,openssl=10
 ./usr/libdata/debug/lib/libcrypto.so.14.0.debug                        comp-sys-debug  debug,dynamicroot,openssl=11
@@ -71,7 +71,7 @@
 ./usr/libdata/debug/usr/lib/libbsdmalloc.so.0.0.debug          comp-sys-debug  debug,compatfile
 ./usr/libdata/debug/usr/lib/libbz2.so.1.1.debug                        comp-sys-debug  debug,compatfile
 ./usr/libdata/debug/usr/lib/libc++.so.1.0.debug                        comp-sys-debug  debug,compatfile,libcxx
-./usr/libdata/debug/usr/lib/libc.so.12.213.debug               comp-sys-debug  debug,compatfile
+./usr/libdata/debug/usr/lib/libc.so.12.214.debug               comp-sys-debug  debug,compatfile
 ./usr/libdata/debug/usr/lib/libcom_err.so.8.0.debug            comp-krb5-debug debug,compatfile,kerberos
 ./usr/libdata/debug/usr/lib/libcrypt.so.1.0.debug              comp-sys-debug  debug,compatfile
 ./usr/libdata/debug/usr/lib/libcrypto.so.12.0.debug            comp-crypto-debug       debug,compatfile,openssl=10
diff -r e80e69078498 -r 03247c6654f7 distrib/sets/lists/modules/ad.arm
--- a/distrib/sets/lists/modules/ad.arm Sun Sep 22 19:51:18 2019 +0000
+++ b/distrib/sets/lists/modules/ad.arm Sun Sep 22 22:59:37 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: ad.arm,v 1.12 2019/02/03 08:02:58 pgoyette Exp $
+# $NetBSD: ad.arm,v 1.13 2019/09/22 22:59:37 christos Exp $
 
 ./@MODULEDIR@/compat_netbsd32                  base-kernel-modules     kmod
 ./@MODULEDIR@/compat_netbsd32/compat_netbsd32.kmod base-kernel-modules kmod
@@ -26,6 +26,8 @@
 ./@MODULEDIR@/compat_netbsd32_60/compat_netbsd32_60.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_80               base-kernel-modules     kmod
 ./@MODULEDIR@/compat_netbsd32_80/compat_netbsd32_80.kmod base-kernel-modules   kmod
+./@MODULEDIR@/compat_netbsd32_90               base-kernel-modules     kmod
+./@MODULEDIR@/compat_netbsd32_90/compat_netbsd32_90.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_43               base-kernel-modules     kmod
 ./@MODULEDIR@/compat_netbsd32_43/compat_netbsd32_43.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_mqueue           base-kernel-modules     kmod
diff -r e80e69078498 -r 03247c6654f7 distrib/sets/lists/modules/ad.mips
--- a/distrib/sets/lists/modules/ad.mips        Sun Sep 22 19:51:18 2019 +0000
+++ b/distrib/sets/lists/modules/ad.mips        Sun Sep 22 22:59:37 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips,v 1.12 2019/02/03 08:02:58 pgoyette Exp $
+# $NetBSD: ad.mips,v 1.13 2019/09/22 22:59:37 christos Exp $
 ./@MODULEDIR@/compat_netbsd32                  base-kernel-modules     kmod,arch64,nocompatmodules
 ./@MODULEDIR@/compat_netbsd32/compat_netbsd32.kmod base-kernel-modules kmod,arch64,nocompatmodules
 ./@MODULEDIR@/compat_netbsd32_09               base-kernel-modules     kmod,arch64,nocompatmodules
@@ -25,6 +25,8 @@
 ./@MODULEDIR@/compat_netbsd32_60/compat_netbsd32_60.kmod base-kernel-modules   kmod,arch64,nocompatmodules
 ./@MODULEDIR@/compat_netbsd32_80               base-kernel-modules     kmod,arch64,nocompatmodules
 ./@MODULEDIR@/compat_netbsd32_80/compat_netbsd32_80.kmod base-kernel-modules   kmod,arch64,nocompatmodules
+./@MODULEDIR@/compat_netbsd32_90               base-kernel-modules     kmod,arch64,nocompatmodules
+./@MODULEDIR@/compat_netbsd32_90/compat_netbsd32_90.kmod base-kernel-modules   kmod,arch64,nocompatmodules
 ./@MODULEDIR@/compat_netbsd32_43               base-kernel-modules     kmod,arch64,nocompatmodules
 ./@MODULEDIR@/compat_netbsd32_43/compat_netbsd32_43.kmod base-kernel-modules   kmod,arch64,nocompatmodules
 ./@MODULEDIR@/compat_netbsd32_mqueue                   base-kernel-modules     kmod,arch64,nocompatmodules
diff -r e80e69078498 -r 03247c6654f7 distrib/sets/lists/modules/md.amd64
--- a/distrib/sets/lists/modules/md.amd64       Sun Sep 22 19:51:18 2019 +0000
+++ b/distrib/sets/lists/modules/md.amd64       Sun Sep 22 22:59:37 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.80 2019/02/03 08:02:58 pgoyette Exp $
+# $NetBSD: md.amd64,v 1.81 2019/09/22 22:59:37 christos Exp $
 #
 # NOTE that there are two sets of files here:
 # @MODULEDIR@ and amd64-xen
@@ -79,6 +79,8 @@
 ./@MODULEDIR@/compat_netbsd32_60/compat_netbsd32_60.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_80               base-kernel-modules     kmod
 ./@MODULEDIR@/compat_netbsd32_80/compat_netbsd32_80.kmod base-kernel-modules   kmod
+./@MODULEDIR@/compat_netbsd32_90               base-kernel-modules     kmod
+./@MODULEDIR@/compat_netbsd32_90/compat_netbsd32_90.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_43               base-kernel-modules     kmod
 ./@MODULEDIR@/compat_netbsd32_43/compat_netbsd32_43.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_mqueue           base-kernel-modules     kmod
diff -r e80e69078498 -r 03247c6654f7 distrib/sets/lists/modules/md.sparc64
--- a/distrib/sets/lists/modules/md.sparc64     Sun Sep 22 19:51:18 2019 +0000
+++ b/distrib/sets/lists/modules/md.sparc64     Sun Sep 22 22:59:37 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: md.sparc64,v 1.7 2019/02/03 08:02:58 pgoyette Exp $
+# $NetBSD: md.sparc64,v 1.8 2019/09/22 22:59:37 christos Exp $
 
 ./@MODULEDIR@/compat_netbsd32                  base-kernel-modules     kmod
 ./@MODULEDIR@/compat_netbsd32/compat_netbsd32.kmod base-kernel-modules kmod
@@ -26,6 +26,8 @@
 ./@MODULEDIR@/compat_netbsd32_60/compat_netbsd32_60.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_80               base-kernel-modules     kmod
 ./@MODULEDIR@/compat_netbsd32_80/compat_netbsd32_80.kmod base-kernel-modules   kmod
+./@MODULEDIR@/compat_netbsd32_90               base-kernel-modules     kmod
+./@MODULEDIR@/compat_netbsd32_90/compat_netbsd32_90.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_43               base-kernel-modules     kmod
 ./@MODULEDIR@/compat_netbsd32_43/compat_netbsd32_43.kmod base-kernel-modules   kmod
 ./@MODULEDIR@/compat_netbsd32_mqueue           base-kernel-modules     kmod
diff -r e80e69078498 -r 03247c6654f7 distrib/sets/lists/modules/mi
--- a/distrib/sets/lists/modules/mi     Sun Sep 22 19:51:18 2019 +0000
+++ b/distrib/sets/lists/modules/mi     Sun Sep 22 22:59:37 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.125 2019/09/17 07:36:51 mrg Exp $
+# $NetBSD: mi,v 1.126 2019/09/22 22:59:37 christos Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -100,6 +100,8 @@
 ./@MODULEDIR@/compat_70/compat_70.kmod         base-kernel-modules     kmod
 ./@MODULEDIR@/compat_80                                base-kernel-modules     kmod
 ./@MODULEDIR@/compat_80/compat_80.kmod         base-kernel-modules     kmod
+./@MODULEDIR@/compat_90                                base-kernel-modules     kmod
+./@MODULEDIR@/compat_90/compat_90.kmod         base-kernel-modules     kmod
 ./@MODULEDIR@/compat_ossaudio                  base-kernel-modules     kmod
 ./@MODULEDIR@/compat_ossaudio/compat_ossaudio.kmod base-kernel-modules kmod
 ./@MODULEDIR@/compat_crypto_50                 base-kernel-modules     kmod
diff -r e80e69078498 -r 03247c6654f7 lib/libc/compat/gen/Makefile.inc
--- a/lib/libc/compat/gen/Makefile.inc  Sun Sep 22 19:51:18 2019 +0000
+++ b/lib/libc/compat/gen/Makefile.inc  Sun Sep 22 22:59:37 2019 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile.inc,v 1.17 2014/01/16 20:31:42 christos Exp $
+#      $NetBSD: Makefile.inc,v 1.18 2019/09/22 22:59:38 christos Exp $
 
 .PATH: ${COMPATDIR}/gen
 SRCS+=compat_errlist.c compat_fts.c compat___fts13.c compat___fts30.c \
@@ -8,4 +8,5 @@
     compat_times.c compat_timezone.c compat_unvis.c compat_utmpx.c \
     compat_time.c compat_utime.c compat_devname.c compat_alphasort.c \
     compat_getpwent.c compat___fts32.c compat_utmp.c compat___fts50.c \
-    compat___unvis13.c compat_syslog.c compat_alloca.c
+    compat___unvis13.c compat_syslog.c compat_alloca.c \
+    compat___getmntinfo13.c
diff -r e80e69078498 -r 03247c6654f7 lib/libc/compat/gen/compat___getmntinfo13.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libc/compat/gen/compat___getmntinfo13.c       Sun Sep 22 22:59:37 2019 +0000
@@ -0,0 +1,84 @@
+/*     $NetBSD: compat___getmntinfo13.c,v 1.1 2019/09/22 22:59:38 christos Exp $       */
+
+/*-
+ * Copyright (c) 2019 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Christos Zoulas.
+ *
+ * Redistribution and use in source and binary forms, with or without



Home | Main Index | Thread Index | Old Index