--- perl-llin/Fuse.xs 2006/01/02 22:39:32 28 +++ perl-llin/Fuse.xs 2006/01/03 16:21:13 68 @@ -542,7 +542,13 @@ } /* FIXME check for old fuse API (< 21?) and use statfs here */ -int _PLfuse_statfs (const char *file, struct statvfs *st) { +#ifdef __FreeBSD__ + #define _fuse_statvfs statfs +#else + #define _fuse_statvfs statvfs +#endif +int _PLfuse_statfs (const char *file, struct _fuse_statvfs *st) { + int rv; char *rvstr; FUSE_CONTEXT_PRE; @@ -556,16 +562,20 @@ SPAGAIN; DEBUGf("statfs got %i params\n",rv); if(rv == 6 || rv == 7) { - st->f_bsize = POPi; - st->f_bfree = st->f_bavail = POPi; - st->f_blocks = POPi; - st->f_ffree = st->f_favail = POPi; - st->f_files = POPi; - st->f_namemax = POPi; - /* zero all other */ - st->f_frsize = 4096; + st->f_bsize = POPi; + st->f_bfree = POPi; + st->f_blocks = POPi; + st->f_ffree = POPi; + st->f_files = POPi; + st->f_namemax = POPi; +#ifndef __FreeBSD__ + /* zero and fill-in other */ st->f_fsid = 0; + st->f_frsize = 4096; st->f_flag = 0; + st->f_bavail = st->f_bfree; + st->f_favail = st->f_ffree; +#endif if(rv == 7) rv = POPi;