Date: Sat, 12 Apr 2008 16:45:47 -0700 From: Alfred Perlstein <alfred@freebsd.org> To: Jeff Roberson <jroberson@jroberson.net> Cc: Kirk McKusick <mckusick@mckusick.com>, arch@freebsd.org Subject: Re: VOP_LEASE Message-ID: <20080412234547.GZ95731@elvis.mu.org> In-Reply-To: <20080412131017.S43186@desktop> References: <200804121703.m3CH3StJ081660@chez.mckusick.com> <41ED3941-E5E6-45F0-B880-C1B2861FDE32@rabson.org> <20080412131017.S43186@desktop>
next in thread | previous in thread | raw e-mail | index | archive | help
* Jeff Roberson <jroberson@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@jroberson.net> > >>>To: arch@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080412234547.GZ95731>