VOP_LEASE

Alfred Perlstein alfred at freebsd.org
Sat Apr 12 23:45:48 UTC 2008


* Jeff Roberson <jroberson at jroberson.net> [080412 16:13] wrote:
> On Sat, 12 Apr 2008, Doug Rabson wrote:
> 
> >
> >On 12 Apr 2008, at 18:03, Kirk McKusick wrote:
> >
> >>>Date: Sat, 12 Apr 2008 02:13:15 -1000 (HST)
> >>>From: Jeff Roberson <jroberson at jroberson.net>
> >>>To: arch at freebsd.org
> >>>Subject: VOP_LEASE
> >>>
> >>>As far as I can tell this has never been used.  Unless someone can show 
> >>>me
> >>>otherwise I'm going to go ahead and remove it.
> >>>
> >>>Thanks,
> >>>Jeff
> >>
> >>VOP_LEASE is used by NQNFS and NFSv4. It notifies them when a file
> >>is modified locally so that they know to update any outstanding
> >>leases (e.g., evict any write lease for the file and do callbacks
> >>for any read leases for the file). Deleting VOP_LEASE would break
> >>NFS big time.
> >
> >I think our NQNFS support might have been removed some time ago - I can't 
> >see any calls to VOP_LEASE in the code right now. Something like VOP_LEASE 
> >would certainly be useful for a hypothetical future NFSv4 server. I 
> >believe that samba could use it too for its oplocks feature which appears 
> >to be similar to NQNFS's leases and NFSv4's delegations.
> 
> So the idea with delegations is that close() doesn't actually release the 
> file entirely to make future access cheaper?
> 
> My issue with VOP_LEASE is only that there are no in kernel 
> implementations of the VOP.  I doubt it is applied regularly in syscalls. 
> It also seems odd that it is called without a lock.
> 
> Is the intent that the server will trap all accesses to a local vnode in 
> order to invalidate the client leases?

VOP_LEASE is supposed to implemented by a filesystem client.

For insance, NFS client with NQNFS would implement the VOP_LEASE
and trap those accesses to manage the lease with the remote server.

The remote server would get "lease RPCs" from the client and manage
the cache appropriately.

-- 
- Alfred Perlstein


More information about the freebsd-arch mailing list