All of lore.kernel.org
 help / color / mirror / Atom feed
From: Will Cohen <wwcohen@gmail.com>
To: qemu-devel@nongnu.org
Cc: Laurent Vivier <lvivier@redhat.com>,
	Thomas Huth <thuth@redhat.com>,
	Christian Schoenebeck <qemu_oss@crudebyte.com>,
	Greg Kurz <groug@kaod.org>,
	hi@alyssa.is, Michael Roitzsch <reactorcontrol@icloud.com>,
	Will Cohen <wwcohen@gmail.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Keno Fischer <keno@juliacomputing.com>
Subject: [PATCH v3 05/11] 9p: darwin: Ignore O_{NOATIME, DIRECT}
Date: Thu, 27 Jan 2022 19:56:05 -0500	[thread overview]
Message-ID: <20220128005611.87185-6-wwcohen@gmail.com> (raw)
In-Reply-To: <20220128005611.87185-1-wwcohen@gmail.com>

From: Keno Fischer <keno@juliacomputing.com>

Darwin doesn't have either of these flags. Darwin does have
F_NOCACHE, which is similar to O_DIRECT, but has different
enough semantics that other projects don't generally map
them automatically. In any case, we don't support O_DIRECT
on Linux at the moment either.

Signed-off-by: Keno Fischer <keno@juliacomputing.com>
[Michael Roitzsch: - Rebase for NixOS]
Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>
[Will Cohen: - Adjust coding style]
Signed-off-by: Will Cohen <wwcohen@gmail.com>
---
 hw/9pfs/9p-util.h |  2 ++
 hw/9pfs/9p.c      | 13 ++++++++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/hw/9pfs/9p-util.h b/hw/9pfs/9p-util.h
index 546f46dc7d..627baebaba 100644
--- a/hw/9pfs/9p-util.h
+++ b/hw/9pfs/9p-util.h
@@ -41,6 +41,7 @@ again:
     fd = openat(dirfd, name, flags | O_NOFOLLOW | O_NOCTTY | O_NONBLOCK,
                 mode);
     if (fd == -1) {
+#ifndef CONFIG_DARWIN
         if (errno == EPERM && (flags & O_NOATIME)) {
             /*
              * The client passed O_NOATIME but we lack permissions to honor it.
@@ -53,6 +54,7 @@ again:
             flags &= ~O_NOATIME;
             goto again;
         }
+#endif
         return -1;
     }
 
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index 7851f85f8f..9b0c057e9c 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -137,11 +137,20 @@ static int dotl_to_open_flags(int flags)
         { P9_DOTL_NONBLOCK, O_NONBLOCK } ,
         { P9_DOTL_DSYNC, O_DSYNC },
         { P9_DOTL_FASYNC, FASYNC },
+#ifndef CONFIG_DARWIN
+        { P9_DOTL_NOATIME, O_NOATIME },
+        /*
+         *  On Darwin, we could map to F_NOCACHE, which is
+         *  similar, but doesn't quite have the same
+         *  semantics. However, we don't support O_DIRECT
+         *  even on linux at the moment, so we just ignore
+         *  it here.
+         */
         { P9_DOTL_DIRECT, O_DIRECT },
+#endif
         { P9_DOTL_LARGEFILE, O_LARGEFILE },
         { P9_DOTL_DIRECTORY, O_DIRECTORY },
         { P9_DOTL_NOFOLLOW, O_NOFOLLOW },
-        { P9_DOTL_NOATIME, O_NOATIME },
         { P9_DOTL_SYNC, O_SYNC },
     };
 
@@ -170,10 +179,12 @@ static int get_dotl_openflags(V9fsState *s, int oflags)
      */
     flags = dotl_to_open_flags(oflags);
     flags &= ~(O_NOCTTY | O_ASYNC | O_CREAT);
+#ifndef CONFIG_DARWIN
     /*
      * Ignore direct disk access hint until the server supports it.
      */
     flags &= ~O_DIRECT;
+#endif
     return flags;
 }
 
-- 
2.34.1



  parent reply	other threads:[~2022-01-28  1:06 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-28  0:56 [PATCH v3 00/11] This is a followup to https://lists.gnu.org/archive/html/qemu-devel/2021-11/msg04325.html, Will Cohen
2022-01-28  0:56 ` [PATCH v3 01/11] 9p: linux: Fix a couple Linux assumptions Will Cohen
2022-01-28 15:52   ` Greg Kurz
2022-01-28  0:56 ` [PATCH v3 02/11] 9p: Rename 9p-util -> 9p-util-linux Will Cohen
2022-01-28 16:27   ` Greg Kurz
2022-01-28  0:56 ` [PATCH v3 03/11] 9p: darwin: Handle struct stat(fs) differences Will Cohen
2022-02-02 17:48   ` Christian Schoenebeck
2022-01-28  0:56 ` [PATCH v3 04/11] 9p: darwin: Handle struct dirent differences Will Cohen
2022-02-02 15:07   ` Will Cohen
2022-02-02 17:37     ` Christian Schoenebeck
2022-02-02 18:31       ` Will Cohen
2022-01-28  0:56 ` Will Cohen [this message]
2022-01-28  0:56 ` [PATCH v3 06/11] 9p: darwin: Compatibility defn for XATTR_SIZE_MAX Will Cohen
2022-01-28 16:02   ` Christian Schoenebeck
2022-01-28  0:56 ` [PATCH v3 07/11] 9p: darwin: *xattr_nofollow implementations Will Cohen
2022-01-28  0:56 ` [PATCH v3 08/11] 9p: darwin: Compatibility for f/l*xattr Will Cohen
2022-01-28  0:56 ` [PATCH v3 09/11] 9p: darwin: Implement compatibility for mknodat Will Cohen
2022-01-28  0:56 ` [PATCH v3 10/11] 9p: darwin: meson: Allow VirtFS on Darwin Will Cohen
2022-01-28  0:56 ` [PATCH v3 11/11] 9p: darwin: adjust assumption on virtio-9p-test Will Cohen
2022-01-28  7:03   ` Thomas Huth
2022-01-28 13:38     ` Will Cohen
2022-01-28 15:28       ` Christian Schoenebeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220128005611.87185-6-wwcohen@gmail.com \
    --to=wwcohen@gmail.com \
    --cc=groug@kaod.org \
    --cc=hi@alyssa.is \
    --cc=keno@juliacomputing.com \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu_oss@crudebyte.com \
    --cc=reactorcontrol@icloud.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.