43 lines
1 KiB
Text
43 lines
1 KiB
Text
$NetBSD: patch-aa,v 1.2 2007/12/02 12:55:11 wiz Exp $
|
|
|
|
--- fs.c.orig 2004-08-25 18:24:24.000000000 +0200
|
|
+++ fs.c
|
|
@@ -19,6 +19,11 @@
|
|
#include <sys/mount.h>
|
|
#endif
|
|
|
|
+#if defined (__NetBSD__) && (__NetBSD_Version__ >= 299000900)
|
|
+#include <sys/statvfs.h>
|
|
+#define STATVFS 1
|
|
+#endif
|
|
+
|
|
/* TODO: benchmark which is faster, fstatvfs() or pre-opened fd and
|
|
* statvfs() (fstatvfs() would handle mounts I think...) */
|
|
|
|
@@ -27,16 +32,25 @@ struct fs_stat *fs_stats = fs_stats_;
|
|
|
|
void update_fs_stats() {
|
|
unsigned int i;
|
|
+#ifndef STATVFS
|
|
struct statfs s;
|
|
+#else
|
|
+ struct statvfs s;
|
|
+#endif
|
|
for (i=0; i<16; i++) {
|
|
if (fs_stats[i].fd <= 0)
|
|
break;
|
|
|
|
+#ifndef STATVFS
|
|
fstatfs(fs_stats[i].fd, &s);
|
|
-
|
|
fs_stats[i].size = (long long) s.f_blocks * s.f_bsize;
|
|
/* bfree (root) or bavail (non-roots) ? */
|
|
fs_stats[i].avail = (long long) s.f_bavail * s.f_bsize;
|
|
+#else
|
|
+ fstatvfs(fs_stats[i].fd, &s);
|
|
+ fs_stats[i].size = (int64_t) s.f_blocks * 1024;
|
|
+ fs_stats[i].avail = (int64_t) s.f_bavail * 1024;
|
|
+#endif
|
|
}
|
|
}
|
|
|