#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/statvfs.h>
#include <fcntl.h>
#include <unistd.h>
-#include "../src/guestfs_protocol.h"
+#include "guestfs_protocol.h"
#include "daemon.h"
#include "actions.h"
CHROOT_OUT;
if (r == -1) {
- reply_with_perror ("stat");
+ reply_with_perror ("%s", path);
return NULL;
}
ret->gid = statbuf.st_gid;
ret->rdev = statbuf.st_rdev;
ret->size = statbuf.st_size;
+#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
ret->blksize = statbuf.st_blksize;
+#else
+ ret->blksize = -1;
+#endif
+#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
ret->blocks = statbuf.st_blocks;
+#else
+ ret->blocks = -1;
+#endif
ret->atime = statbuf.st_atime;
ret->mtime = statbuf.st_mtime;
ret->ctime = statbuf.st_ctime;
CHROOT_OUT;
if (r == -1) {
- reply_with_perror ("stat");
+ reply_with_perror ("%s", path);
return NULL;
}
ret->gid = statbuf.st_gid;
ret->rdev = statbuf.st_rdev;
ret->size = statbuf.st_size;
+#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
ret->blksize = statbuf.st_blksize;
+#else
+ ret->blksize = -1;
+#endif
+#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
ret->blocks = statbuf.st_blocks;
+#else
+ ret->blocks = -1;
+#endif
ret->atime = statbuf.st_atime;
ret->mtime = statbuf.st_mtime;
ret->ctime = statbuf.st_ctime;
CHROOT_OUT;
if (path_fd == -1) {
- reply_with_perror ("lstatlist: %s", path);
+ reply_with_perror ("%s", path);
free (ret->guestfs_int_stat_list_val);
free (ret);
return NULL;
ret->guestfs_int_stat_list_val[i].gid = statbuf.st_gid;
ret->guestfs_int_stat_list_val[i].rdev = statbuf.st_rdev;
ret->guestfs_int_stat_list_val[i].size = statbuf.st_size;
+#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
ret->guestfs_int_stat_list_val[i].blksize = statbuf.st_blksize;
+#else
+ ret->guestfs_int_stat_list_val[i].blksize = -1;
+#endif
+#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
ret->guestfs_int_stat_list_val[i].blocks = statbuf.st_blocks;
+#else
+ ret->guestfs_int_stat_list_val[i].blocks = -1;
+#endif
ret->guestfs_int_stat_list_val[i].atime = statbuf.st_atime;
ret->guestfs_int_stat_list_val[i].mtime = statbuf.st_mtime;
ret->guestfs_int_stat_list_val[i].ctime = statbuf.st_ctime;
return ret;
}
-
-guestfs_int_statvfs *
-do_statvfs (const char *path)
-{
- int r;
- guestfs_int_statvfs *ret;
- struct statvfs statbuf;
-
- CHROOT_IN;
- r = statvfs (path, &statbuf);
- CHROOT_OUT;
-
- if (r == -1) {
- reply_with_perror ("statvfs");
- return NULL;
- }
-
- ret = malloc (sizeof *ret);
- if (ret == NULL) {
- reply_with_perror ("malloc");
- return NULL;
- }
-
- ret->bsize = statbuf.f_bsize;
- ret->frsize = statbuf.f_frsize;
- ret->blocks = statbuf.f_blocks;
- ret->bfree = statbuf.f_bfree;
- ret->bavail = statbuf.f_bavail;
- ret->files = statbuf.f_files;
- ret->ffree = statbuf.f_ffree;
- ret->favail = statbuf.f_favail;
- ret->fsid = statbuf.f_fsid;
- ret->flag = statbuf.f_flag;
- ret->namemax = statbuf.f_namemax;
-
- return ret;
-}