This is another attempt at a posix locking interface that allows us to
provide NFS clients with cluster-coherent locking without blocking lockd
while the filesystem goes off and talks to other nodes.
This time we're using the existing file ->lock operation instead of
defining a new export operation for the purpose, and factoring out the
code that switches between calling ->lock or the default local
operation, so that lock managers and local callers go through the same
code.
I find the existing interfaces a little odd, and while I think I managed
to combine them correctly, I'd certainly appreciate any review.
The gfs2 implementation in the last patch is (unfortunately) still just
a rough draft that needs some more thought and some testing.
--b.