integrating nfsv4 locking with nlm and local locking

Rick Macklem rmacklem at
Mon Apr 13 11:37:37 PDT 2009

On Mon, 13 Apr 2009, John Baldwin wrote:

> You have to hold the vnode lock to set a VV flag always.  Even if you do an
> atomic operation to set your flag, another thread might be setting a flag at
> the same time using non-atomic ops and could clobber your change (if it does
> a read-modify-write and reads a value that pre-dates your atomic_set_int()
> but its write posts after your write).
Righto, thanks. (I should have realized that.) I guess I'll have to use a
VI_xxx flag or add a field to the vnode to make the scheme work. I am
just trying to come up with a stopgap solution until something more
comprehensive can be done w.r.t. handling delegations.

VI_xxx are currently used for handling the vnode and it doesn't seem
appropriate to add one of these to indicate "don't issue delegations".

How do others feel w.r.t. adding a VI_xxx flag vs adding v_disabledelegate
to the structure?

There is always the fallback position of shipping an nfsv4 server with
delegations disabled, until handling them when local VOPs are done, gets


More information about the freebsd-fs mailing list