On Tue, Apr 19, 2022 at 8:18 AM Christian Schoenebeck <
qemu_...@crudebyte.com> wrote:

> mknod() on macOS does not support creating regular files, so
> divert to openat_file() if S_IFREG is passed with mode argument.
>
> Furthermore, 'man 2 mknodat' on Linux says: "Zero file type is
> equivalent to type S_IFREG".
>
> Link: https://lore.kernel.org/qemu-devel/17933734.zYzKuhC07K@silver/
> Signed-off-by
> <https://lore.kernel.org/qemu-devel/17933734.zYzKuhC07K@silver/Signed-off-by>:
> Christian Schoenebeck <qemu_...@crudebyte.com>
> ---
>  hw/9pfs/9p-util-darwin.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/hw/9pfs/9p-util-darwin.c b/hw/9pfs/9p-util-darwin.c
> index bec0253474..53e0625501 100644
> --- a/hw/9pfs/9p-util-darwin.c
> +++ b/hw/9pfs/9p-util-darwin.c
> @@ -77,6 +77,10 @@ int fsetxattrat_nofollow(int dirfd, const char
> *filename, const char *name,
>  int qemu_mknodat(int dirfd, const char *filename, mode_t mode, dev_t dev)
>  {
>      int preserved_errno, err;
> +
> +    if (S_ISREG(mode) || !(mode & S_IFMT)) {
> +        return openat_file(dirfd, filename, O_CREAT, mode);
> +    }
>      if (!pthread_fchdir_np) {
>          error_report_once("pthread_fchdir_np() not available on this
> version of macOS");
>          return -ENOTSUP;
> --
> 2.32.0 (Apple Git-132)
>
Reviewed-by: Will Cohen <wwco...@gmail.com>

>
>

Reply via email to