[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat
From: |
Greg Kurz |
Subject: |
Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat |
Date: |
Mon, 7 Feb 2022 09:47:17 +0100 |
On Sun, 6 Feb 2022 20:10:23 -0500
Will Cohen <wwcohen@gmail.com> wrote:
> This patch set currently places it in 9p-util only because 9p is the only
> place where this issue seems to have come up so far and we were wary of
> editing files too far afield, but I have no attachment to its specific
> location!
>
Inline comments are preferred on qemu-devel. Please don't top post !
This complicates the review a lot.
This is indeed a good candidate for osdep. This being said, unless there's
some other user in the QEMU code base, it is acceptable to leave it under
9pfs.
> On Sun, Feb 6, 2022 at 4:21 PM Philippe Mathieu-Daudé <f4bug@amsat.org>
> wrote:
>
> > On 6/2/22 21:07, Will Cohen wrote:
> > > From: Keno Fischer <keno@juliacomputing.com>
> > >
> > > Darwin does not support mknodat. However, to avoid race conditions
> > > with later setting the permissions, we must avoid using mknod on
> > > the full path instead. We could try to fchdir, but that would cause
> > > problems if multiple threads try to call mknodat at the same time.
> > > However, luckily there is a solution: Darwin includes a function
> > > that sets the cwd for the current thread only.
> > > This should suffice to use mknod safely.
> > >
> > > This function (pthread_fchdir_np) is protected by a check in
> > > meson in a patch later in tihs series.
> > >
> > > Signed-off-by: Keno Fischer <keno@juliacomputing.com>
> > > Signed-off-by: Michael Roitzsch <reactorcontrol@icloud.com>
> > > [Will Cohen: - Adjust coding style
> > > - Replace clang references with gcc
> > > - Note radar filed with Apple for missing syscall
> > > - Replace direct syscall with pthread_fchdir_np and
> > > adjust patch notes accordingly]
> > > Signed-off-by: Will Cohen <wwcohen@gmail.com>
> > > ---
> > > hw/9pfs/9p-local.c | 5 +++--
> > > hw/9pfs/9p-util-darwin.c | 27 +++++++++++++++++++++++++++
> > > hw/9pfs/9p-util-linux.c | 5 +++++
> > > hw/9pfs/9p-util.h | 2 ++
> > > 4 files changed, 37 insertions(+), 2 deletions(-)
> >
> > > diff --git a/hw/9pfs/9p-util.h b/hw/9pfs/9p-util.h
> > > index 8e610ad224..f6fed963bf 100644
> > > --- a/hw/9pfs/9p-util.h
> > > +++ b/hw/9pfs/9p-util.h
> > > @@ -97,6 +97,8 @@ ssize_t flistxattrat_nofollow(int dirfd, const char
> > *filename,
> > > ssize_t fremovexattrat_nofollow(int dirfd, const char *filename,
> > > const char *name);
> > >
> > > +int qemu_mknodat(int dirfd, const char *filename, mode_t mode, dev_t
> > dev);
> >
> > I think this belong to "osdep.h" & os-posix.c.
> >
[PATCH v4 08/11] 9p: darwin: Compatibility for f/l*xattr, Will Cohen, 2022/02/06
[PATCH v4 06/11] 9p: darwin: Move XATTR_SIZE_MAX->P9_XATTR_SIZE_MAX, Will Cohen, 2022/02/06
[PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Will Cohen, 2022/02/06
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Philippe Mathieu-Daudé, 2022/02/06
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Will Cohen, 2022/02/06
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat,
Greg Kurz <=
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Philippe Mathieu-Daudé, 2022/02/07
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Greg Kurz, 2022/02/07
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Dr. David Alan Gilbert, 2022/02/07
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Christian Schoenebeck, 2022/02/07
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Will Cohen, 2022/02/07
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Will Cohen, 2022/02/07
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Christian Schoenebeck, 2022/02/07
- Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Will Cohen, 2022/02/07
Re: [PATCH v4 09/11] 9p: darwin: Implement compatibility for mknodat, Vivek Goyal, 2022/02/07
[PATCH v4 05/11] 9p: darwin: Ignore O_{NOATIME, DIRECT}, Will Cohen, 2022/02/06