Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Jan 2026 15:04:33 -0800
From:      Rick Macklem <rick.macklem@gmail.com>
To:        Benjamin Kaduk <bjkfbsd@gmail.com>
Cc:        Rick Macklem <rmacklem@freebsd.org>, src-committers@freebsd.org,  dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: a6d57f312f18 - main - nfsd: Fix handling of hidden/system during Open/Create
Message-ID:  <CAM5tNy4souZbFVODdCpwk4XC5yrzCx9aCYNabdBo3ygZUw3M9Q@mail.gmail.com>
In-Reply-To: <CAJ5_RoD-T0SJpsKL5V-JHrz7hS_7g8Z=hMX_iNpq8DoCFtBi1g@mail.gmail.com>
References:  <69604cd7.3aebd.7fdcb739@gitrepo.freebsd.org> <CAJ5_RoD-T0SJpsKL5V-JHrz7hS_7g8Z=hMX_iNpq8DoCFtBi1g@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

On Fri, Jan 9, 2026 at 11:56 AM Benjamin Kaduk <bjkfbsd@gmail.com> wrote:
>
> CAUTION: This email originated from outside of the University of Guelph. Do not click links or open attachments unless you recognize the sender and know the content is safe. If in doubt, forward suspicious emails to IThelp@uoguelph.ca.
>
> On Thu, Jan 8, 2026 at 4:33 PM Rick Macklem <rmacklem@freebsd.org> wrote:
>>
>> The branch main has been updated by rmacklem:
>>
>> URL: https://cgit.FreeBSD.org/src/commit/?id=a6d57f312f18bbeeda8a34e99d0a662b0db9a190
>>
>> commit a6d57f312f18bbeeda8a34e99d0a662b0db9a190
>> Author:     Rick Macklem <rmacklem@FreeBSD.org>
>> AuthorDate: 2026-01-08 16:27:32 +0000
>> Commit:     Rick Macklem <rmacklem@FreeBSD.org>
>> CommitDate: 2026-01-08 16:27:32 +0000
>>
>>     nfsd: Fix handling of hidden/system during Open/Create
>>
>>     When an NFSv4.n client specifies settings for the archive,
>>     hidden and/or system attributes during a Open/Create, the
>>     Open/Create fails for ZFS.  This is caused by ZFS doing
>>     a secpolicy_xvattr() call, which fails for non-root.
>>     If this check is bypassed, ZFS panics.
>>
>>     This patch resolves the problem by disabling va_flags
>>     for the VOP_CREATE() call in the NFSv4.n server and
>>     then setting the flags with a subsequent VOP_SETATTR().
>>
>
> The diff doesn't really include enough context to tell -- does this introduce a race window where a file that's supposed to be hidden and/or system is visible without that attribute from a different process?
I believe that the answer is no.

VOP_CREATE() returns the new file's vnode exclusively locked
and the update via VOP_SETATTR() happens before the vnode
lock is released.

rick

>
> Thanks,
>
> Ben


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM5tNy4souZbFVODdCpwk4XC5yrzCx9aCYNabdBo3ygZUw3M9Q>