summaryrefslogtreecommitdiff
path: root/libarchive/archive_read_disk_posix.c
diff options
context:
space:
mode:
authorChristos Zoulas <christos@zoulas.com>2021-03-29 16:19:21 -0400
committerChristos Zoulas <christos@zoulas.com>2021-03-29 16:19:21 -0400
commit7fa476911d1099862fc90c4f20b3ea9c99feaa30 (patch)
tree4ac01f72067602047597c12c52d485c39a6f7ec4 /libarchive/archive_read_disk_posix.c
parent42776e9db8d2319929be87048616961510f904b4 (diff)
downloadlibarchive-7fa476911d1099862fc90c4f20b3ea9c99feaa30.tar.gz
Put the statvfs code in a separate block so that it can by shared by
linux and NetBSD
Diffstat (limited to 'libarchive/archive_read_disk_posix.c')
-rw-r--r--libarchive/archive_read_disk_posix.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c
index 28949fc9..a674d72d 100644
--- a/libarchive/archive_read_disk_posix.c
+++ b/libarchive/archive_read_disk_posix.c
@@ -1522,6 +1522,22 @@ get_xfer_size(struct tree *t, int fd, const char *path)
}
#endif
+#if defined(HAVE_STATVFS)
+static void
+set_transfer_size(struct filesystem *fs, const struct statvfs *sfs)
+{
+ fs->xfer_align = sfs->f_frsize > 0 ? (long)sfs->f_frsize : -1;
+ fs->max_xfer_size = -1;
+#if defined(HAVE_STRUCT_STATVFS_F_IOSIZE)
+ fs->min_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1;
+ fs->incr_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1;
+#else
+ fs->min_xfer_size = sfs->f_bsize > 0 : (long)sfs->f_bsize : -1;
+ fs->incr_xfer_size = sfs->f_bsize > 0 : (long)sfs->f_bsize : -1;
+#endif
+}
+#endif
+
#if defined(HAVE_STATFS) && defined(HAVE_FSTATFS) && defined(MNT_LOCAL) \
&& !defined(ST_LOCAL)
@@ -1657,20 +1673,6 @@ setup_current_filesystem(struct archive_read_disk *a)
#elif (defined(HAVE_STATVFS) || defined(HAVE_FSTATVFS)) && defined(ST_LOCAL)
-static void
-set_transfer_size(struct filesystem *fs, const struct statvfs *sfs)
-{
- fs->xfer_align = sfs->f_frsize > 0 ? (long)sfs->f_frsize : -1;
- fs->max_xfer_size = -1;
-#if defined(HAVE_STRUCT_STATVFS_F_IOSIZE)
- fs->min_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1;
- fs->incr_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1;
-#else
- fs->min_xfer_size = sfs->f_bsize > 0 : (long)sfs->f_bsize : -1;
- fs->incr_xfer_size = sfs->f_bsize > 0 : (long)sfs->f_bsize : -1;
-#endif
-}
-
/*
* Gather current filesystem properties on NetBSD
*/