- to->f_bsize = from->f_bsize;
- to->f_frsize = from->f_frsize;
- to->f_blocks = from->f_blocks;
- to->f_bfree = from->f_bfree;
- to->f_bavail = from->f_bavail;
- to->f_files = from->f_files;
- to->f_ffree = from->f_ffree;
- to->f_favail = from->f_favail;
- to->f_fsid = from->f_fsid;
- Mono_Posix_ToMountFlags (from->f_flag, &to->f_flag);
- to->f_namemax = from->f_namemax;
+ struct statvfs *from = _from;
+
+ to->f_bsize = from->f_bsize;
+ to->f_frsize = from->f_frsize;
+ to->f_blocks = from->f_blocks;
+ to->f_bfree = from->f_bfree;
+ to->f_bavail = from->f_bavail;
+ to->f_files = from->f_files;
+ to->f_ffree = from->f_ffree;
+ to->f_favail = from->f_favail;
+ to->f_fsid = from->f_fsid;
+ to->f_namemax = from->f_namemax;
+
+ if (Mono_Posix_ToMountFlags (from->f_flag, &to->f_flag) != 0)
+ return -1;
+
+ return 0;
+}
+
+int
+Mono_Posix_FromStatvfs (struct Mono_Posix_Statvfs *from, void *_to)
+{
+ struct statvfs *to = _to;
+ guint64 flag;
+
+ to->f_bsize = from->f_bsize;
+ to->f_frsize = from->f_frsize;
+ to->f_blocks = from->f_blocks;
+ to->f_bfree = from->f_bfree;
+ to->f_bavail = from->f_bavail;
+ to->f_files = from->f_files;
+ to->f_ffree = from->f_ffree;
+ to->f_favail = from->f_favail;
+ to->f_fsid = from->f_fsid;
+ to->f_namemax = from->f_namemax;
+
+ if (Mono_Posix_FromMountFlags (from->f_flag, &flag) != 0)
+ return -1;
+ to->f_flag = flag;
+
+ return 0;