[PATCH 3/6] leases: break read leases on unlink

J. Bruce Fields bfields at redhat.com
Wed Sep 21 11:41:15 MDT 2011

On Wed, Sep 21, 2011 at 11:02:41AM -0400, Christoph Hellwig wrote:
> On Wed, Sep 21, 2011 at 10:58:14AM -0400, J. Bruce Fields wrote:
> > A read lease is used by NFSv4 as a guarantee that a client can perform
> > local read opens without informing the server.
> > 
> > The open operation takes the last component of the pathname as an
> > argument, thus is also a lookup operation, and giving the client the
> > above guarantee means informing the client before we allow anything that
> > would change the set of names pointing to the inode.
> That seems like totally strange semantics.  A useful defintion of a
> lase operation would mean it guarantees I/O can happen, and wouldn't
> care about metadata operation.  That's the whole point in adding a
> stateful open to nfs4, isn't it?

One of the purposes of a delegation (==lease) is to let clients perform
open() entirely locally, without waiting for any round trips to the

That doesn't work if the client has to revalidate the open path on every

(And as I understand it--Trond can correct me if I'm
confused--revalidating at least the last component of the path is a
requirement for the close-to-open semantics that the Linux client
guarantees to applications.)

I dunno, perhaps a more logical way to do that would be to define some
kind of lease on the parent directories.  That's not the way the
protocols work.


More information about the samba-technical mailing list