Squid-2.2.STABLE3: use statfs() if statvfs() isn't available Some systems (most notably Linux) uses statfs() instead of statvfs(). Squid uses this to print out interesting statistics about real disk usage in it's statistics pages. Not yet used for operational changes. Index: squid/configure.in diff -u squid/configure.in:1.1.1.32.6.3 squid/configure.in:1.1.1.32.6.4 --- squid/configure.in:1.1.1.32.6.3 Thu May 20 20:59:15 1999 +++ squid/configure.in Sat Jun 5 00:16:20 1999 @@ -579,6 +579,7 @@ sys/socket.h \ sys/stat.h \ sys/statvfs.h \ + sys/vfs.h \ sys/syscall.h \ sys/time.h \ sys/types.h \ @@ -893,6 +894,7 @@ socketpair \ srand48 \ srandom \ + statfs \ sysconf \ syslog \ tempnam \ Index: squid/src/store_dir.c diff -u squid/src/store_dir.c:1.1.1.20 squid/src/store_dir.c:1.1.1.20.12.1 --- squid/src/store_dir.c:1.1.1.20 Sun Feb 14 23:30:09 1999 +++ squid/src/store_dir.c Sat Jun 5 00:16:24 1999 @@ -38,7 +38,11 @@ #if HAVE_SYS_STATVFS_H #include #endif +#elif HAVE_STATFS +#if HAVE_SYS_VFS_H +#include #endif +#endif #define SWAP_DIR_SHIFT 24 #define SWAP_FILE_MASK 0x00FFFFFF @@ -586,6 +590,8 @@ SwapDir *SD; #if HAVE_STATVFS struct statvfs sfs; +#elif HAVE_STATFS + struct statfs sfs; #endif storeAppendPrintf(sentry, "Store Directory Statistics:\n"); storeAppendPrintf(sentry, "Store Entries : %d\n", @@ -610,15 +616,27 @@ storeAppendPrintf(sentry, "Filemap bits in use: %d of %d (%d%%)\n", SD->map->n_files_in_map, SD->map->max_n_files, percent(SD->map->n_files_in_map, SD->map->max_n_files)); -#if HAVE_STATVFS +#if HAVE_STATVFS || HAVE_STATFS #define fsbtoblk(num, fsbs, bs) \ (((fsbs) != 0 && (fsbs) < (bs)) ? \ (num) / ((bs) / (fsbs)) : (num) * ((fsbs) / (bs))) - if (!statvfs(SD->path, &sfs)) { +#if HAVE_STATVFS + if (!statvfs(SD->path, &sfs)) +#elif HAVE_STATFS + if (!statfs(SD->path, &sfs)) +#endif + { +#if HAVE_STATVFS storeAppendPrintf(sentry, "Filesystem Space in use: %d/%d KB (%d%%)\n", fsbtoblk((sfs.f_blocks - sfs.f_bfree), sfs.f_frsize, 1024), fsbtoblk(sfs.f_blocks, sfs.f_frsize, 1024), percent(sfs.f_blocks - sfs.f_bfree, sfs.f_blocks)); +#elif HAVE_STATFS + storeAppendPrintf(sentry, "Filesystem Space in use: %d/%d KB (%d%%)\n", + fsbtoblk((sfs.f_blocks - sfs.f_bfree), sfs.f_bsize, 1024), + fsbtoblk(sfs.f_blocks, sfs.f_bsize, 1024), + percent(sfs.f_blocks - sfs.f_bfree, sfs.f_blocks)); +#endif storeAppendPrintf(sentry, "Filesystem Inodes in use: %d/%d (%d%%)\n", sfs.f_files - sfs.f_ffree, sfs.f_files, percent(sfs.f_files - sfs.f_ffree, sfs.f_files));