summaryrefslogtreecommitdiff
path: root/net-mgmt/net-snmp4/files/patch-disk.c
blob: 5d82a33941bc029e3eb88927343bc1c2eacc3049 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
--- agent/mibgroup/ucd-snmp/disk.c.orig	Wed Apr  3 07:57:57 2002
+++ agent/mibgroup/ucd-snmp/disk.c	Thu Aug 29 12:11:17 2002
@@ -340,7 +340,7 @@
   double totalblks, free, used, avail, availblks;
 #else
   static long avail;
-#ifdef STRUCT_STATVFS_HAS_F_FILES
+#if defined(HAVE_UFS_FFS_FS_H) || defined(STRUCT_STATVFS_HAS_F_FILES)
   int percent_inode;
 #endif
 #endif
@@ -424,6 +424,11 @@
     (int) ((double) (vfs.f_files - vfs.f_ffree) /
            (double) (vfs.f_files - (vfs.f_ffree - vfs.f_favail)) * 100.0 + 0.5);
 #endif
+#if defined(HAVE_UFS_FFS_FS_H) && !defined(STRUCT_STATVFS_HAS_F_FILES)
+  percent_inode = vfs.f_files == 0 ? 100.0 :
+    (int) ((double) (vfs.f_files - vfs.f_ffree) /
+	   (double) (vfs.f_files) * 100.0 + 0.5);
+#endif
   switch (vp->magic) {
     case DISKTOTAL:
       long_ret = vfs.f_blocks * (vfs.f_bsize / 1024);
@@ -444,7 +449,7 @@
     case DISKPERCENT:
       long_ret = percent;
       return ((u_char *) (&long_ret));
-#ifdef STRUCT_STATVFS_HAS_F_FILES
+#if defined(HAVE_UFS_FFS_FS_H) || defined(STRUCT_STATVFS_HAS_F_FILES)
     case DISKPERCENTNODE:
       long_ret = percent_inode;
       return ((u_char *) (&long_ret));