linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: NeilBrown <neilb@ownmail.net>
To: "Jeff Layton" <jlayton@kernel.org>
Cc: "Christoph Hellwig" <hch@infradead.org>,
	"Christian Brauner" <brauner@kernel.org>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"Chuck Lever" <chuck.lever@oracle.com>,
	"Olga Kornievskaia" <okorniev@redhat.com>,
	"Dai Ngo" <Dai.Ngo@oracle.com>, "Tom Talpey" <tom@talpey.com>,
	"Amir Goldstein" <amir73il@gmail.com>,
	"Hugh Dickins" <hughd@google.com>,
	"Baolin Wang" <baolin.wang@linux.alibaba.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Theodore Ts'o" <tytso@mit.edu>,
	"Andreas Dilger" <adilger.kernel@dilger.ca>,
	"Jan Kara" <jack@suse.com>, "Gao Xiang" <xiang@kernel.org>,
	"Chao Yu" <chao@kernel.org>, "Yue Hu" <zbestahu@gmail.com>,
	"Jeffle Xu" <jefflexu@linux.alibaba.com>,
	"Sandeep Dhavale" <dhavale@google.com>,
	"Hongbo Li" <lihongbo22@huawei.com>,
	"Chunhai Guo" <guochunhai@vivo.com>,
	"Carlos Maiolino" <cem@kernel.org>,
	"Ilya Dryomov" <idryomov@gmail.com>,
	"Alex Markuze" <amarkuze@redhat.com>,
	"Viacheslav Dubeyko" <slava@dubeyko.com>,
	"Chris Mason" <clm@fb.com>, "David Sterba" <dsterba@suse.com>,
	"Luis de Bethencourt" <luisbg@kernel.org>,
	"Salah Triki" <salah.triki@gmail.com>,
	"Phillip Lougher" <phillip@squashfs.org.uk>,
	"Steve French" <sfrench@samba.org>,
	"Paulo Alcantara" <pc@manguebit.org>,
	"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
	"Shyam Prasad N" <sprasad@microsoft.com>,
	"Bharath SM" <bharathsm@microsoft.com>,
	"Miklos Szeredi" <miklos@szeredi.hu>,
	"Mike Marshall" <hubcap@omnibond.com>,
	"Martin Brandenburg" <martin@omnibond.com>,
	"Mark Fasheh" <mark@fasheh.com>,
	"Joel Becker" <jlbec@evilplan.org>,
	"Joseph Qi" <joseph.qi@linux.alibaba.com>,
	"Konstantin Komarov" <almaz.alexandrovich@paragon-software.com>,
	"Ryusuke Konishi" <konishi.ryusuke@gmail.com>,
	"Trond Myklebust" <trondmy@kernel.org>,
	"Anna Schumaker" <anna@kernel.org>,
	"Dave Kleikamp" <shaggy@kernel.org>,
	"David Woodhouse" <dwmw2@infradead.org>,
	"Richard Weinberger" <richard@nod.at>, "Jan Kara" <jack@suse.cz>,
	"Andreas Gruenbacher" <agruenba@redhat.com>,
	"OGAWA Hirofumi" <hirofumi@mail.parknet.co.jp>,
	"Jaegeuk Kim" <jaegeuk@kernel.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"David Laight" <david.laight.linux@gmail.com>,
	"Dave Chinner" <david@fromorbit.com>,
	linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
	linux-ext4@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-xfs@vger.kernel.org, ceph-devel@vger.kernel.org,
	linux-btrfs@vger.kernel.org, linux-cifs@vger.kernel.org,
	samba-technical@lists.samba.org, linux-unionfs@vger.kernel.org,
	devel@lists.orangefs.org, ocfs2-devel@lists.linux.dev,
	ntfs3@lists.linux.dev, linux-nilfs@vger.kernel.org,
	jfs-discussion@lists.sourceforge.net,
	linux-mtd@lists.infradead.org, gfs2@lists.linux.dev,
	linux-f2fs-devel@lists.sourceforge.net,
	linux-doc@vger.kernel.org
Subject: Re: [PATCH v2 01/31] Documentation: document EXPORT_OP_NOLOCKS
Date: Wed, 21 Jan 2026 20:58:06 +1100	[thread overview]
Message-ID: <176898948697.16766.1729756714812778707@noble.neil.brown.name> (raw)
In-Reply-To: <2ed97731c54ef130ea58861a91c80dacd785de9a.camel@kernel.org>

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


  parent reply	other threads:[~2026-01-21  9:58 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-19 16:26 [PATCH v2 00/31] fs: require filesystems to explicitly opt-in to nfsd export support Jeff Layton
2026-01-19 16:26 ` [PATCH v2 01/31] Documentation: document EXPORT_OP_NOLOCKS Jeff Layton
2026-01-20  7:44   ` Christoph Hellwig
2026-01-20 13:20     ` Jeff Layton
2026-01-20 14:12       ` Jeff Layton
2026-01-20 14:35         ` Jeff Layton
2026-01-21  9:17           ` Christoph Hellwig
2026-01-21  9:58           ` NeilBrown [this message]
2026-01-21 12:29             ` Jeff Layton
2026-01-21 22:47               ` NeilBrown
2026-01-19 16:26 ` [PATCH v2 02/31] exportfs: add new EXPORT_OP_STABLE_HANDLES flag Jeff Layton
2026-01-19 16:41   ` Amir Goldstein
2026-01-20  7:50   ` Christoph Hellwig
2026-01-20  8:40     ` Jan Kara
2026-01-21  9:17       ` Christoph Hellwig
2026-01-20 13:21     ` Jeff Layton
2026-01-19 16:26 ` [PATCH v2 03/31] tmpfs: add EXPORT_OP_STABLE_HANDLES flag to export operations Jeff Layton
2026-01-19 16:26 ` [PATCH v2 04/31] ext4: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 05/31] ext2: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 06/31] erofs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 07/31] efs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 08/31] xfs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 09/31] ceph: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 10/31] btrfs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 11/31] befs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 12/31] ufs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 13/31] udf: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 14/31] affs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 15/31] squashfs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 16/31] smb/client: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 17/31] ovl: " Jeff Layton
2026-01-19 16:42   ` Amir Goldstein
2026-01-19 16:26 ` [PATCH v2 18/31] orangefs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 19/31] ocfs2: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 20/31] ntfs3: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 21/31] nilfs2: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 22/31] nfs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 23/31] jfs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 24/31] jffs2: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 25/31] isofs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 26/31] gfs2: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 27/31] fuse: " Jeff Layton
2026-01-19 16:43   ` Amir Goldstein
2026-01-19 16:26 ` [PATCH v2 28/31] fat: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 29/31] f2fs: " Jeff Layton
2026-01-19 16:26 ` [PATCH v2 30/31] nfsd: only allow filesystems that set EXPORT_OP_STABLE_HANDLES Jeff Layton
2026-01-19 16:51   ` Chuck Lever
2026-01-19 16:26 ` [PATCH v2 31/31] nfsd: convert dprintks in check_export() to tracepoints Jeff Layton
2026-01-19 16:47   ` Chuck Lever
2026-01-20 13:42     ` Jeff Layton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=176898948697.16766.1729756714812778707@noble.neil.brown.name \
    --to=neilb@ownmail.net \
    --cc=Dai.Ngo@oracle.com \
    --cc=adilger.kernel@dilger.ca \
    --cc=agruenba@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=almaz.alexandrovich@paragon-software.com \
    --cc=amarkuze@redhat.com \
    --cc=amir73il@gmail.com \
    --cc=anna@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=bharathsm@microsoft.com \
    --cc=brauner@kernel.org \
    --cc=cem@kernel.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=chao@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=clm@fb.com \
    --cc=corbet@lwn.net \
    --cc=david.laight.linux@gmail.com \
    --cc=david@fromorbit.com \
    --cc=devel@lists.orangefs.org \
    --cc=dhavale@google.com \
    --cc=dsterba@suse.com \
    --cc=dwmw2@infradead.org \
    --cc=gfs2@lists.linux.dev \
    --cc=guochunhai@vivo.com \
    --cc=hch@infradead.org \
    --cc=hirofumi@mail.parknet.co.jp \
    --cc=hubcap@omnibond.com \
    --cc=hughd@google.com \
    --cc=idryomov@gmail.com \
    --cc=jack@suse.com \
    --cc=jack@suse.cz \
    --cc=jaegeuk@kernel.org \
    --cc=jefflexu@linux.alibaba.com \
    --cc=jfs-discussion@lists.sourceforge.net \
    --cc=jlayton@kernel.org \
    --cc=jlbec@evilplan.org \
    --cc=joseph.qi@linux.alibaba.com \
    --cc=konishi.ryusuke@gmail.com \
    --cc=lihongbo22@huawei.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-nilfs@vger.kernel.org \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=luisbg@kernel.org \
    --cc=mark@fasheh.com \
    --cc=martin@omnibond.com \
    --cc=miklos@szeredi.hu \
    --cc=neil@brown.name \
    --cc=ntfs3@lists.linux.dev \
    --cc=ocfs2-devel@lists.linux.dev \
    --cc=okorniev@redhat.com \
    --cc=pc@manguebit.org \
    --cc=phillip@squashfs.org.uk \
    --cc=richard@nod.at \
    --cc=ronniesahlberg@gmail.com \
    --cc=salah.triki@gmail.com \
    --cc=samba-technical@lists.samba.org \
    --cc=sfrench@samba.org \
    --cc=shaggy@kernel.org \
    --cc=slava@dubeyko.com \
    --cc=sprasad@microsoft.com \
    --cc=tom@talpey.com \
    --cc=trondmy@kernel.org \
    --cc=tytso@mit.edu \
    --cc=viro@zeniv.linux.org.uk \
    --cc=xiang@kernel.org \
    --cc=zbestahu@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox