[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 11/13] 9p: darwin: Mark mknod as unsupported
From: |
Keno Fischer |
Subject: |
Re: [Qemu-devel] [PATCH 11/13] 9p: darwin: Mark mknod as unsupported |
Date: |
Thu, 31 May 2018 19:21:08 -0400 |
On Thu, May 31, 2018 at 7:06 PM, Keno Fischer <address@hidden> wrote:
> On Thu, May 31, 2018 at 6:56 PM, Keno Fischer <address@hidden> wrote:
>>>> My concern was that allowing this would cause unexpected
>>>> behavior, since the device numbers will differ between OS X
>>>> and Linux. Though maybe this isn't the place to worry about
>>>> that.
>>>
>>> The numbers may differ indeed but we don't really care since the
>>> server never opens device files. This is just a directory entry.
>>
>> Ok, let me try to implement it. However, I don't think it is possible
>> to implement mknodat (or at least I can't think of how) on Darwin
>> directly. I could use regular mknod, but presumably, this is used
>> to avoid a race condition between creating the device and setting
>> the permissions. Can you think of a good way to resolve that?
>
> Would it work to fchdir in to the directory and use a cwd-relative
> mknod, then fchdir back? Or do we need to maintain the cwd
> while in this code?
Sorry for the triple-self-post here, but I took a look at the Darwin kernel
source and there's an unexposed (from the Darwin C library) syscall that
only changes the current thread's cwd. That seems like it should be safe,
so I'll go ahead and use that to implement mknodat. I'll also submit a
feature request to apple to implement mknodat.
- Re: [Qemu-devel] [PATCH 09/13] 9p: darwin: Provide a compatibility definition for XATTR_SIZE_MAX, (continued)
[Qemu-devel] [PATCH 12/13] 9p: darwin: Provide a fallback implementation for utimensat, keno, 2018/05/26
[Qemu-devel] [PATCH 13/13] 9p: darwin: configure: Allow VirtFS on Darwin, keno, 2018/05/26
Re: [Qemu-devel] [PATCH 00/13] 9p: Add support for Darwin, no-reply, 2018/05/26