On Thu, Jan 22, 2015 at 03:14:42PM -0500, J. Bruce Fields wrote:
> On Thu, Jan 22, 2015 at 12:09:49PM +0100, Christoph Hellwig wrote:
> > This (ab-)uses the file locking code to allow filesystems to recall
> > outstanding pNFS layouts on a file. This new lease type is similar but
> > not quite the same as FL_DELEG. A FL_LAYOUT lease can always be granted,
> > an a per-filesystem lock (XFS iolock for the initial implementation)
> > ensures not FL_LAYOUT leases granted when we would need to recall them.
> So when there's a conflicting operation it's xfs's responsibility to
> call break_layout and wait for the recall?
> (And what roughly is the set of conflicting operations?)
The last patch in the series has a comment explaining this.
There's two categories:
a) operations that need to be protected to maintain filesystem integrity:
truncate, hole punch, collapse range, a well as any new operation
that can deallocate blocks.
b) operations that write data locally, and we want to provide a best
effort attempt at data cohrency between local use and pFNS clients.
This covers writes in all variants, and should apply to shared mmap
writes, but sleeping in the page fault handler is too hard to bother
with for this sort of best effort coherency.