On Tue, Oct 1, 2019 at 2:02 PM Ira Weiny <ira.weiny@xxxxxxxxx> wrote: > > On Mon, Sep 30, 2019 at 06:42:33PM +1000, Dave Chinner wrote: > > On Wed, Sep 25, 2019 at 04:46:03PM -0700, Ira Weiny wrote: > > > On Tue, Sep 24, 2019 at 08:26:20AM +1000, Dave Chinner wrote: > > > > Hence, AFIACT, the above definition of a F_RDLCK|F_LAYOUT lease > > > > doesn't appear to be compatible with the semantics required by > > > > existing users of layout leases. > > > > > > I disagree. Other than the addition of F_UNBREAK, I think this is consistent > > > with what is currently implemented. Also, by exporting all this to user space > > > we can now write tests for it independent of the RDMA pinning. > > > > The current usage of F_RDLCK | F_LAYOUT by the pNFS code allows > > layout changes to occur to the file while the layout lease is held. > > This was not my understanding. I think you guys are talking past each other. F_RDLCK | F_LAYOUT can be broken to allow writes to the file / layout. The new unbreakable case would require explicit SIGKILL as "revocation method of last resort", but that's the new incremental extension being proposed. No changes to the current behavior of F_RDLCK | F_LAYOUT. Dave, the question at hand is whether this new layout lease mode being proposed is going to respond to BREAK_WRITE, or just BREAK_UNMAP. It seems longterm page pinning conflicts really only care about BREAK_UNMAP where pages that were part of the file are being removed from the file. The unbreakable case can tolerate layout changes that keep pinned pages mapped / allocated to the file.