9p: linux: Fix a couple Linux assumptions

- Guard Linux only headers.
 - Add qemu/statfs.h header to abstract over the which
   headers are needed for struct statfs
 - Define `ENOATTR` only if not only defined
   (it's defined in system headers on Darwin).

Signed-off-by: Keno Fischer <keno@juliacomputing.com>
[Michael Roitzsch: - Rebase for NixOS]
Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>

While it might at first appear that fsdev/virtfs-proxy-header.c would
need similar adjustment for darwin as file-op-9p here, a later patch in
this series disables virtfs-proxy-helper for non-Linux. Allowing
virtfs-proxy-helper on darwin could potentially be an additional
optimization later.

[Will Cohen: - Fix headers for Alpine
             - Integrate statfs.h back into file-op-9p.h
             - Remove superfluous header guards from file-opt-9p
             - Add note about virtfs-proxy-helper being disabled
               on non-Linux for this patch series]
Signed-off-by: Will Cohen <wwcohen@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Message-Id: <20220227223522.91937-2-wwcohen@gmail.com>
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
This commit is contained in:
Keno Fischer 2022-02-27 17:35:12 -05:00 committed by Christian Schoenebeck
parent 9d662a6b22
commit e0bd743bb2
4 changed files with 17 additions and 2 deletions

View File

@ -16,10 +16,17 @@
#include <dirent.h> #include <dirent.h>
#include <utime.h> #include <utime.h>
#include <sys/vfs.h>
#include "qemu-fsdev-throttle.h" #include "qemu-fsdev-throttle.h"
#include "p9array.h" #include "p9array.h"
#ifdef CONFIG_LINUX
# include <sys/vfs.h>
#endif
#ifdef CONFIG_DARWIN
# include <sys/param.h>
# include <sys/mount.h>
#endif
#define SM_LOCAL_MODE_BITS 0600 #define SM_LOCAL_MODE_BITS 0600
#define SM_LOCAL_DIR_MODE_BITS 0700 #define SM_LOCAL_DIR_MODE_BITS 0700

View File

@ -32,10 +32,12 @@
#include "qemu/error-report.h" #include "qemu/error-report.h"
#include "qemu/option.h" #include "qemu/option.h"
#include <libgen.h> #include <libgen.h>
#ifdef CONFIG_LINUX
#include <linux/fs.h> #include <linux/fs.h>
#ifdef CONFIG_LINUX_MAGIC_H #ifdef CONFIG_LINUX_MAGIC_H
#include <linux/magic.h> #include <linux/magic.h>
#endif #endif
#endif
#include <sys/ioctl.h> #include <sys/ioctl.h>
#ifndef XFS_SUPER_MAGIC #ifndef XFS_SUPER_MAGIC

View File

@ -32,7 +32,11 @@
#include "migration/blocker.h" #include "migration/blocker.h"
#include "qemu/xxhash.h" #include "qemu/xxhash.h"
#include <math.h> #include <math.h>
#ifdef CONFIG_LINUX
#include <linux/limits.h> #include <linux/limits.h>
#else
#include <limits.h>
#endif
int open_fd_hw; int open_fd_hw;
int total_open_fd; int total_open_fd;

View File

@ -22,7 +22,9 @@
#ifdef CONFIG_LIBATTR #ifdef CONFIG_LIBATTR
# include <attr/xattr.h> # include <attr/xattr.h>
#else #else
# if !defined(ENOATTR)
# define ENOATTR ENODATA # define ENOATTR ENODATA
# endif
# include <sys/xattr.h> # include <sys/xattr.h>
#endif #endif