linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/29] fs: require filesystems to explicitly opt-in to nfsd export support
@ 2026-01-15 17:47 Jeff Layton
  2026-01-15 17:47 ` [PATCH 01/29] exportfs: add new EXPORT_OP_STABLE_HANDLES flag Jeff Layton
                   ` (29 more replies)
  0 siblings, 30 replies; 92+ messages in thread
From: Jeff Layton @ 2026-01-15 17:47 UTC (permalink / raw)
  To: Christian Brauner, Alexander Viro, Chuck Lever, NeilBrown,
	Olga Kornievskaia, Dai Ngo, Tom Talpey, Amir Goldstein,
	Hugh Dickins, Baolin Wang, Andrew Morton, Theodore Ts'o,
	Andreas Dilger, Jan Kara, Gao Xiang, Chao Yu, Yue Hu, Jeffle Xu,
	Sandeep Dhavale, Hongbo Li, Chunhai Guo, Carlos Maiolino,
	Ilya Dryomov, Alex Markuze, Viacheslav Dubeyko, Chris Mason,
	David Sterba, Luis de Bethencourt, Salah Triki, Phillip Lougher,
	Steve French, Paulo Alcantara, Ronnie Sahlberg, Shyam Prasad N,
	Bharath SM, Miklos Szeredi, Mike Marshall, Martin Brandenburg,
	Mark Fasheh, Joel Becker, Joseph Qi, Konstantin Komarov,
	Ryusuke Konishi, Trond Myklebust, Anna Schumaker, Dave Kleikamp,
	David Woodhouse, Richard Weinberger, Jan Kara,
	Andreas Gruenbacher, OGAWA Hirofumi, Jaegeuk Kim
  Cc: Christoph Hellwig, linux-nfs, linux-kernel, linux-fsdevel,
	linux-mm, linux-ext4, linux-erofs, linux-xfs, ceph-devel,
	linux-btrfs, linux-cifs, samba-technical, linux-unionfs, devel,
	ocfs2-devel, ntfs3, linux-nilfs, jfs-discussion, linux-mtd, gfs2,
	linux-f2fs-devel, Jeff Layton

In recent years, a number of filesystems that can't present stable
filehandles have grown struct export_operations. They've mostly done
this for local use-cases (enabling open_by_handle_at() and the like).
Unfortunately, having export_operations is generally sufficient to make
a filesystem be considered exportable via nfsd, but that requires that
the server present stable filehandles.

This patchset declares a new EXPORT_OP_STABLE_HANDLES flag, adds it to
all of the filesystems that have stable filehandles, and then adds a
check in nfsd to ensure that that flag is set for any filesystem to
which it has been presented a handle. When a filesystem doesn't have
this flag, it will treat the filehandle as stale.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Jeff Layton (29):
      exportfs: add new EXPORT_OP_STABLE_HANDLES flag
      tmpfs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      ext4: add EXPORT_OP_STABLE_HANDLES flag to export operations
      ext2: add EXPORT_OP_STABLE_HANDLES flag to export operations
      erofs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      efs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      xfs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      ceph: add EXPORT_OP_STABLE_HANDLES flag to export operations
      btrfs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      befs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      ufs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      udf: add EXPORT_OP_STABLE_HANDLES flag to export operations
      affs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      squashfs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      smb/client: add EXPORT_OP_STABLE_HANDLES flag to export operations
      ovl: add EXPORT_OP_STABLE_HANDLES flag to export operations
      orangefs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      ocfs2: add EXPORT_OP_STABLE_HANDLES flag to export operations
      ntfs3: add EXPORT_OP_STABLE_HANDLES flag to export operations
      nilfs2: add EXPORT_OP_STABLE_HANDLES flag to export operations
      nfs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      jfs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      jffs2: add EXPORT_OP_STABLE_HANDLES flag to export operations
      isofs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      gfs2: add EXPORT_OP_STABLE_HANDLES flag to export operations
      fuse: add EXPORT_OP_STABLE_HANDLES flag to export operations
      fat: add EXPORT_OP_STABLE_HANDLES flag to export operations
      f2fs: add EXPORT_OP_STABLE_HANDLES flag to export operations
      nfsd: only allow filesystems that set EXPORT_OP_STABLE_HANDLES

 fs/affs/namei.c          |  1 +
 fs/befs/linuxvfs.c       |  1 +
 fs/btrfs/export.c        |  1 +
 fs/ceph/export.c         |  1 +
 fs/efs/super.c           |  1 +
 fs/erofs/super.c         |  1 +
 fs/ext2/super.c          |  1 +
 fs/ext4/super.c          |  1 +
 fs/f2fs/super.c          |  1 +
 fs/fat/nfs.c             |  2 ++
 fs/fuse/inode.c          |  2 ++
 fs/gfs2/export.c         |  1 +
 fs/isofs/export.c        |  1 +
 fs/jffs2/super.c         |  1 +
 fs/jfs/super.c           |  1 +
 fs/nfs/export.c          |  3 ++-
 fs/nfsd/nfsfh.c          |  4 ++++
 fs/nilfs2/namei.c        |  1 +
 fs/ntfs3/super.c         |  1 +
 fs/ocfs2/export.c        |  1 +
 fs/orangefs/super.c      |  1 +
 fs/overlayfs/export.c    |  2 ++
 fs/smb/client/export.c   |  1 +
 fs/squashfs/export.c     |  3 ++-
 fs/udf/namei.c           |  1 +
 fs/ufs/super.c           |  1 +
 fs/xfs/xfs_export.c      |  1 +
 include/linux/exportfs.h | 16 +++++++++-------
 mm/shmem.c               |  1 +
 29 files changed, 45 insertions(+), 9 deletions(-)
---
base-commit: c537e12daeecaecdcd322c56a5f70659d2de7bde
change-id: 20260114-exportfs-nfsd-12515072e9a9

Best regards,
-- 
Jeff Layton <jlayton@kernel.org>



^ permalink raw reply	[flat|nested] 92+ messages in thread

end of thread, other threads:[~2026-01-22 17:04 UTC | newest]

Thread overview: 92+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-01-15 17:47 [PATCH 00/29] fs: require filesystems to explicitly opt-in to nfsd export support Jeff Layton
2026-01-15 17:47 ` [PATCH 01/29] exportfs: add new EXPORT_OP_STABLE_HANDLES flag Jeff Layton
2026-01-16 10:45   ` Jan Kara
2026-01-15 17:47 ` [PATCH 02/29] tmpfs: add EXPORT_OP_STABLE_HANDLES flag to export operations Jeff Layton
2026-01-16 10:47   ` Jan Kara
2026-01-15 17:47 ` [PATCH 03/29] ext4: " Jeff Layton
2026-01-16  2:22   ` Theodore Tso
2026-01-16 10:46   ` Jan Kara
2026-01-15 17:47 ` [PATCH 04/29] ext2: " Jeff Layton
2026-01-16 10:46   ` Jan Kara
2026-01-15 17:47 ` [PATCH 05/29] erofs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 06/29] efs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 07/29] xfs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 08/29] ceph: " Jeff Layton
2026-01-15 19:16   ` Viacheslav Dubeyko
2026-01-15 17:47 ` [PATCH 09/29] btrfs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 10/29] befs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 11/29] ufs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 12/29] udf: " Jeff Layton
2026-01-16 10:47   ` Jan Kara
2026-01-15 17:47 ` [PATCH 13/29] affs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 14/29] squashfs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 15/29] smb/client: " Jeff Layton
2026-01-15 19:26   ` Amir Goldstein
2026-01-15 17:47 ` [PATCH 16/29] ovl: " Jeff Layton
2026-01-15 18:21   ` Amir Goldstein
2026-01-15 17:47 ` [PATCH 17/29] orangefs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 18/29] ocfs2: " Jeff Layton
2026-01-16 10:47   ` Jan Kara
2026-01-15 17:47 ` [PATCH 19/29] ntfs3: " Jeff Layton
2026-01-15 17:47 ` [PATCH 20/29] nilfs2: " Jeff Layton
2026-01-19  8:39   ` Ryusuke Konishi
2026-01-15 17:47 ` [PATCH 21/29] nfs: " Jeff Layton
2026-01-15 17:47 ` [PATCH 22/29] jfs: " Jeff Layton
2026-01-15 22:09   ` Dave Kleikamp
2026-01-15 17:47 ` [PATCH 23/29] jffs2: " Jeff Layton
2026-01-18 15:36   ` Richard Weinberger
2026-01-15 17:47 ` [PATCH 24/29] isofs: " Jeff Layton
2026-01-16 10:48   ` Jan Kara
2026-01-15 17:47 ` [PATCH 25/29] gfs2: " Jeff Layton
2026-01-15 17:47 ` [PATCH 26/29] fuse: " Jeff Layton
2026-01-15 18:54   ` Amir Goldstein
2026-01-15 19:46     ` Jeff Layton
2026-01-15 17:47 ` [PATCH 27/29] fat: " Jeff Layton
2026-01-15 17:47 ` [PATCH 28/29] f2fs: " Jeff Layton
2026-01-15 17:48 ` [PATCH 29/29] nfsd: only allow filesystems that set EXPORT_OP_STABLE_HANDLES Jeff Layton
2026-01-15 19:23   ` Amir Goldstein
2026-01-16 12:36     ` Jeff Layton
2026-01-16 14:46       ` Amir Goldstein
2026-01-16 15:13         ` Jeff Layton
2026-01-15 18:17 ` [PATCH 00/29] fs: require filesystems to explicitly opt-in to nfsd export support Amir Goldstein
2026-01-15 18:29   ` Jeff Layton
2026-01-18 23:23     ` NeilBrown
2026-01-19  6:41       ` Christoph Hellwig
2026-01-19  7:22         ` NeilBrown
2026-01-19  7:25           ` Christoph Hellwig
2026-01-19  9:27           ` Christian Brauner
2026-01-19 20:45             ` NeilBrown
2026-01-20  7:38               ` Christoph Hellwig
2026-01-20  9:27                 ` NeilBrown
2026-01-20 10:34                   ` Christian Brauner
2026-01-21  9:48                   ` Christoph Hellwig
2026-01-21 10:34                     ` NeilBrown
2026-01-21 14:27                       ` Jeff Layton
2026-01-21 14:47                         ` Christoph Hellwig
2026-01-21 15:18                           ` Jeff Layton
2026-01-22  6:37                             ` Christoph Hellwig
2026-01-22 12:12                               ` Jeff Layton
2026-01-22 17:04                                 ` Darrick J. Wong
2026-01-21 12:37                   ` Jeff Layton
2026-01-20  9:04               ` Christian Brauner
2026-01-20  9:41                 ` NeilBrown
2026-01-20 10:31                   ` Christian Brauner
2026-01-20 12:50                     ` Jeff Layton
2026-01-21  3:58                       ` NeilBrown
2026-01-21 11:56                         ` Jeff Layton
2026-01-21 18:59                           ` Amir Goldstein
2026-01-21 10:00                       ` Christoph Hellwig
2026-01-21 10:01                       ` Christoph Hellwig
2026-01-21  9:58                     ` Christoph Hellwig
2026-01-21  9:52                 ` Christoph Hellwig
2026-01-19 12:30           ` Jeff Layton
2026-01-21  4:10             ` NeilBrown
2026-01-15 18:31   ` Chuck Lever
2026-01-15 19:14     ` Amir Goldstein
2026-01-15 19:31       ` Amir Goldstein
2026-01-15 19:37       ` Chuck Lever
2026-01-15 19:47         ` Amir Goldstein
2026-01-15 21:09         ` Dave Chinner
2026-01-15 21:37           ` Chuck Lever
2026-01-15 22:40             ` David Laight
2026-01-19  7:56           ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox