[Buildroot] deprecated ustat() vs. statfs()

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Wed Dec 31 17:28:28 UTC 2008


On Wed, Dec 31, 2008 at 02:32:36PM +0000, Nigel Kukard wrote:
>I dont suppose this is the correct way to switch to statfs()?

Switching to {f,}statfs is per se not really desirable.

quote from the manpage:
       LSB has deprecated the library calls statfs() and fstatfs()  and  tells
       us to use statvfs(2) and fstatvfs(2) instead.

statvfs is at least POSIX.

A simpler thing (i didn't look at the exact meaning of that function) may
be to just stat the path like e.g. the mountpoint applet ¹) does.

HTH,
¹) http://sources.busybox.net/index.py/trunk/busybox/miscutils/mountpoint.c?view=markup
>
>
>--- xfsprogs-2.10.2_vanilla/libxfs/linux.c    2008-12-09
>23:33:26.000000000 +0000
>+++ xfsprogs-2.10.2_remove-deprecated/libxfs/linux.c    2008-12-31
>14:30:45.000000000 +0000
>@@ -21,7 +21,7 @@
> #include <mntent.h>
> #include <sys/stat.h>
> #undef ustat
>-#include <sys/ustat.h>
>+#include <sys/statfs.h>
> #include <sys/mount.h>
> #include <sys/ioctl.h>
> #include <sys/sysinfo.h>
>@@ -49,7 +49,7 @@
> int
> platform_check_ismounted(char *name, char *block, struct stat64 *s, int
>verbose)
> {
>-    struct ustat    ust;
>+    struct statfs    ust;
>     struct stat64    st;
> 
>     if (!s) {
>@@ -60,7 +60,7 @@
>         s = &st;
>     }
> 
>-    if (ustat(s->st_rdev, &ust) >= 0) {
>+    if (statfs(s->st_rdev, &ust) >= 0) {
>         if (verbose)
>             fprintf(stderr,
>                 _("%s: %s contains a mounted filesystem\n"),
>



More information about the buildroot mailing list