diff -r ab51a2b18f87 -r 2d501fb60b2d mercurial/osutil.c --- a/mercurial/osutil.c Thu Mar 23 22:15:36 2017 -0700 +++ b/mercurial/osutil.c Thu Mar 23 22:13:02 2017 -0700 @@ -27,10 +27,8 @@ #ifdef HAVE_LINUX_MAGIC_H #include #endif -#ifdef HAVE_SYS_MOUNT_H +#ifdef HAVE_BSD_STATFS #include -#endif -#ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H @@ -801,12 +799,21 @@ #ifdef HAVE_STATFS /* given a directory path, return filesystem type (best-effort), or None */ const char *getfstype(const char *path) { +#ifdef HAVE_BSD_STATFS + /* need to return a string field */ + static struct statfs buf; +#else struct statfs buf; +#endif int r; memset(&buf, 0, sizeof(buf)); r = statfs(path, &buf); if (r != 0) return NULL; +#ifdef HAVE_BSD_STATFS + /* BSD or OSX provides a f_fstypename field */ + return buf.f_fstypename; +#endif /* Begin of Linux filesystems */ #ifdef ADFS_SUPER_MAGIC if (buf.f_type == ADFS_SUPER_MAGIC)