docs/51845: [PATCH] catch up getfsstat.2 and statfs.2 with reality
Lukas Ertl
l.ertl at univie.ac.at
Tue May 6 13:20:15 UTC 2003
>Number: 51845
>Category: docs
>Synopsis: [PATCH] catch up getfsstat.2 and statfs.2 with reality
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-doc
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: doc-bug
>Submitter-Id: current-users
>Arrival-Date: Tue May 06 06:20:13 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Lukas Ertl
>Release: FreeBSD 5.1-BETA i386
>Organization:
Vienna University Computer Center
>Environment:
System: FreeBSD korben 5.1-BETA FreeBSD 5.1-BETA #0: Tue May 6 12:01:11 CEST 2003 le at korben:/usr/obj/usr/src/sys/KORBEN i386
>Description:
As already commented in sys/mount.h, getfsstat.2 and statfs.2 are out
of sync with sys/mount.h.
>How-To-Repeat:
Compare sys/mount.h with getfsstat.2 and statfs.2.
>Fix:
--- mount.h.diff begins here ---
Index: sys/sys/mount.h
===================================================================
RCS file: /u/cvs/cvs/src/sys/sys/mount.h,v
retrieving revision 1.147
diff -u -r1.147 mount.h
--- sys/sys/mount.h 26 Mar 2003 22:15:58 -0000 1.147
+++ sys/sys/mount.h 6 May 2003 13:12:50 -0000
@@ -67,8 +67,6 @@
#define MFSNAMELEN 16 /* length of fs type name, including null */
#define MNAMELEN (88 - 2 * sizeof(long)) /* size of on/from name bufs */
-/* XXX getfsstat.2 is out of date with write and read counter changes here. */
-/* XXX statfs.2 is out of date with read counter changes here. */
struct statfs {
long f_spare2; /* placeholder */
long f_bsize; /* fundamental filesystem block size */
Index: lib/libc/sys/getfsstat.2
===================================================================
RCS file: /u/cvs/cvs/src/lib/libc/sys/getfsstat.2,v
retrieving revision 1.14
diff -u -r1.14 getfsstat.2
--- lib/libc/sys/getfsstat.2 19 Dec 2002 09:40:24 -0000 1.14
+++ lib/libc/sys/getfsstat.2 6 May 2003 13:12:50 -0000
@@ -65,25 +65,31 @@
*/
#define MFSNAMELEN 16 /* length of fs type name, including null */
-#define MNAMELEN 90 /* length of buffer for returned name */
+#define MNAMELEN (88 - 2 * sizeof(long)) /* size of on/from name bufs */
struct statfs {
- long f_spare2; /* placeholder */
- long f_bsize; /* fundamental file system block size */
- long f_iosize; /* optimal transfer block size */
- long f_blocks; /* total data blocks in file system */
- long f_bfree; /* free blocks in fs */
- long f_bavail; /* free blocks avail to non-superuser */
- long f_files; /* total file nodes in file system */
- long f_ffree; /* free file nodes in fs */
- fsid_t f_fsid; /* file system id */
- uid_t f_owner; /* user that mounted the file system */
- int f_type; /* type of file system (see below) */
- int f_flags; /* copy of mount flags */
- long f_spare[2]; /* spare for later */
- char f_fstypename[MFSNAMELEN];/* fs type name */
- char f_mntonname[MNAMELEN];/* directory on which mounted */
- char f_mntfromname[MNAMELEN];/* mounted file system */
+ long f_spare2; /* placeholder */
+ long f_bsize; /* fundamental file system block size */
+ long f_iosize; /* optimal transfer block size */
+ long f_blocks; /* total data blocks in file system */
+ long f_bfree; /* free blocks in fs */
+ long f_bavail; /* free blocks avail to non-superuser */
+ long f_files; /* total file nodes in file system */
+ long f_ffree; /* free file nodes in fs */
+ fsid_t f_fsid; /* file system id */
+ uid_t f_owner; /* user that mounted the file system */
+ int f_type; /* type of file system (see below) */
+ int f_flags; /* copy of mount exported flags */
+ long f_syncwrites; /* count of sync writes since mount */
+ long f_asyncwrites; /* count of async writes since mount */
+ char f_fstypename[MFSNAMELEN];/* fs type name */
+ char f_mntonname[MNAMELEN];/* directory on which mounted */
+ long f_syncreads; /* count of sync reads since mount */
+ long f_asyncreads; /* count of async reads since mount */
+ short f_spares1; /* unused spare */
+ char f_mntfromname[MNAMELEN];/* mounted filesystem */
+ short f_spares2; /* unused spare */
+ long f_spare[2]; /* unused spare */
};
.Ed
.Pp
Index: lib/libc/sys/statfs.2
===================================================================
RCS file: /u/cvs/cvs/src/lib/libc/sys/statfs.2,v
retrieving revision 1.21
diff -u -r1.21 statfs.2
--- lib/libc/sys/statfs.2 19 Dec 2002 09:40:25 -0000 1.21
+++ lib/libc/sys/statfs.2 6 May 2003 13:12:50 -0000
@@ -70,27 +70,31 @@
*/
#define MFSNAMELEN 16 /* length of fs type name, including null */
-#define MNAMELEN 90 /* length of buffer for returned name */
+#define MNAMELEN (88 - 2 * sizeof(long)) /* size of on/from name bufs */
struct statfs {
-long f_bsize; /* fundamental file system block size */
-long f_iosize; /* optimal transfer block size */
-long f_blocks; /* total data blocks in file system */
-long f_bfree; /* free blocks in fs */
-long f_bavail; /* free blocks avail to non-superuser */
-long f_files; /* total file nodes in file system */
-long f_ffree; /* free file nodes in fs */
-fsid_t f_fsid; /* file system id */
-uid_t f_owner; /* user that mounted the file system */
-int f_type; /* type of file system */
-int f_flags; /* copy of mount flags */
-long f_syncwrites; /* count of sync writes since mount */
-long f_asyncwrites; /* count of async writes since mount */
-char f_fstypename[MFSNAMELEN];/* fs type name */
-char f_mntonname[MNAMELEN]; /* mount point */
-long f_syncreads; /* count of sync reads since mount */
-long f_asyncreads; /* count of async reads since mount */
-char f_mntfromname[MNAMELEN]; /* mounted file system */
+ long f_spare2; /* placeholder */
+ long f_bsize; /* fundamental file system block size */
+ long f_iosize; /* optimal transfer block size */
+ long f_blocks; /* total data blocks in file system */
+ long f_bfree; /* free blocks in fs */
+ long f_bavail; /* free blocks avail to non-superuser */
+ long f_files; /* total file nodes in file system */
+ long f_ffree; /* free file nodes in fs */
+ fsid_t f_fsid; /* file system id */
+ uid_t f_owner; /* user that mounted the file system */
+ int f_type; /* type of file system (see below) */
+ int f_flags; /* copy of mount exported flags */
+ long f_syncwrites; /* count of sync writes since mount */
+ long f_asyncwrites; /* count of async writes since mount */
+ char f_fstypename[MFSNAMELEN];/* fs type name */
+ char f_mntonname[MNAMELEN];/* directory on which mounted */
+ long f_syncreads; /* count of sync reads since mount */
+ long f_asyncreads; /* count of async reads since mount */
+ short f_spares1; /* unused spare */
+ char f_mntfromname[MNAMELEN];/* mounted filesystem */
+ short f_spares2; /* unused spare */
+ long f_spare[2]; /* unused spare */
};
.Ed
The flags that may be returned include:
--- mount.h.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-doc
mailing list