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

NeilBrown
2026-01-21T09:58:35Z

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.

Reviewed-by: NeilBrown <neil@brown.name>

Thanks,
NeilBrown