Re: [PATCH v2 01/31] Documentation: document EXPORT_OP_NOLOCKS

Jeff Layton <[email protected]>
Newsgroups dev.linux.lists.gfs2,dev.linux.lists.ntfs3,dev.linux.lists.ocfs2-devel,net.sourceforge.lists.linux-f2fs-devel,org.infradead.lists.linux-mtd,org.kernel.vger.ceph-devel,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-cifs,org.kernel.vger.linux-doc,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs,org.kernel.vger.linux-nilfs,org.kernel.vger.linux-unionfs,org.kernel.vger.linux-xfs,org.kvack.linux-mm,org.ozlabs.lists.linux-erofs
Message-ID <[email protected]>
On Wed, 2026-01-21 at 20:58 +1100, NeilBrown wrote:
> On Wed, 21 Jan 2026, Jeff Layton wrote:
> > On Tue, 2026-01-20 at 09:12 -0500, Jeff Layton wrote:
> > > On Tue, 2026-01-20 at 08:20 -0500, Jeff Layton wrote:
> > > > On Mon, 2026-01-19 at 23:44 -0800, Christoph Hellwig wrote:
> > > > > On Mon, Jan 19, 2026 at 11:26:18AM -0500, Jeff Layton wrote:
> > > > > > +  EXPORT_OP_NOLOCKS - Disable file locking on this filesystem. Some
> > > > > > +    filesystems cannot properly support file locking as implemented by
> > > > > > +    nfsd. A case in point is reexport of NFS itself, which can't be done
> > > > > > +    safely without coordinating the grace period handling. Other clustered
> > > > > > +    and networked filesystems can be problematic here as well.
> > > > > 
> > > > > I'm not sure this is very useful.  It really needs to document what
> > > > > locking semantics nfs expects, because otherwise no reader will know
> > > > > if they set this or not.
> > > > 
> > > > Fair point. I'll see if I can draft something better. Suggestions
> > > > welcome.
> > > 
> > > How about this?
> > > 
> > > +  EXPORT_OP_NOLOCKS - Disable file locking on this filesystem. Filesystems
> > > +    that want to support locking over NFS must support POSIX file locking
> > > +    semantics and must handle lock recovery requests from clients after a
> > > +    reboot. Most local disk, RAM, or pseudo-filesystems use the generic POSIX
> > > +    locking support in the kernel and naturally provide this capability. Network
> > > +    or clustered filesystems usually need special handling to do this properly.
> > 
> > Even better, I think?
> > 
> > +
> > +  EXPORT_OP_NOLOCKS - Disable file locking on this filesystem. Filesystems
> > +    that want to support locking over NFS must support POSIX file locking
> > +    semantics. When the server reboots, the clients will issue requests to
> > +    recover their locks, which nfsd will issue to the filesystem as new lock
> > +    requests. Those must succeed in order for lock recovery to work. Most
> > +    local disk, RAM, or pseudo-filesystems use the generic POSIX locking
> > +    support in the kernel and naturally provide this capability. Network or
> > +    clustered filesystems usually need special handling to do this properly.
> > +    Set this flag on filesystems that can't guarantee the proper semantics
> > +    (e.g. reexported NFS).
> 
> I think this is quite thorough, which it good ...  maybe too good :-) It
> reminds me that for true NFS compatibility the fs shouldn't allow local
> locks (or file opens!) until the grace period has passed.  I don't think
> any local filesystems enforce that - it would have to be locks.c that
> does I expect.  I doubt there would be much appetite for doing that
> though.
> 

Yeah, I don't see us ever doing that. It'd be a tricky chicken-and-egg
problem, given the demand-driven way that the mountd upcalls work
today. We don't even know that anything is exported until something
asks for it.

> Reviewed-by: NeilBrown <[email protected]>
> 

Thanks!
-- 
Jeff Layton <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.