Re: [PATCH xfsprogs 11/14] replace statvfs64 by equivalent statvfs

Felix Janda
2016-08-09T17:42:53Z

Christoph Hellwig wrote:
> On Sun, Aug 07, 2016 at 08:24:40AM +0200, Felix Janda wrote:
> > For this it was necessary to change a workaround for missing
> > f_brsize on Mac OS X.
>
> If we can get rid of that it'd be fine, but can you explain a bit
> more why we can get rid of it?

Since we are using transparent LFS, statvfs64 is the same as statvfs,
if statvfs64 is defined at all. In commit b35b4eb8f91d13a326213f989e
it was noticed that OS X is missing statvfs64, and a define was added
to darwin.h. The same commit also fixes the absense of the f_brsize
field in struct statfs on OS X by adding code conditional on the
statvfs64 define. (Notice that this condition might have false
positives. Indeed, on linux with musl libc, statvfs64 is also a
define.)

This patch removes the usage of statvfs64 and thus one of the problems
for Mac OS X. The other problem is solved by giving a suitable
definition of f_brsize. Note that this might collide with other uses
of f_brsize (if they exist). It might be cleaner to just check for Mac
OS X in xfs_fsr.c.

Felix