Re: Weirdness when writing to pseudofs file

From: Johannes Lundberg <johalun_at_FreeBSD.org>
Date: Wed, 22 May 2019 16:18:02 -0700
On 5/22/19 4:12 PM, Johannes Lundberg wrote:
> On 5/22/19 3:02 PM, Conrad Meyer wrote:
>> On Wed, May 22, 2019 at 1:58 PM Johannes Lundberg <johalun_at_freebsd.org> wrote:
>>>> It seems, a single '>' will cause it to try to create the file (even
>>>> though it already exists) and that fails (kern_openat).
>>>>
>>> I would guess because of
>>>
>>> https://github.com/freebsd/freebsd/blob/master/sys/fs/pseudofs/pseudofs_vnops.c#L1042
>>>
>>> struct vop_vector pfs_vnodeops = {
>>> ...
>>> .vop_create = VOP_EOPNOTSUPP,
>>> ...
>>> }
>> kern_openat -> vn_open(_cred) should only call VOP_CREATE if namei()
>> cannot find the named vnode (ni_vp == NULL).  Otherwise, it should
>> just invoke VOP_OPEN.  This suggests there might be a lookup bug in
>> pfs?  Tracing VOPs as Mark suggested seems like a good next step.
>>
>> Best,
>> Conrad
> Thanks Conrad. Yeah, that makes sense that it would open instead of
> recreating. Tracing a'la Mark points to
>
> vop_getwritemount
>
> failing.

Actually vop_setattr also shows up in dtrace.

I'll continue digging..

>
>
Received on Wed May 22 2019 - 21:18:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:20 UTC