Merge tag 'vfs-6.7.fsid' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Nov 2023 20:11:26 +0000 (12:11 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Nov 2023 20:11:26 +0000 (12:11 -0800)
Pull vfs fanotify fsid updates from Christian Brauner:
 "This work is part of the plan to enable fanotify to serve as a drop-in
  replacement for inotify. While inotify is availabe on all filesystems,
  fanotify currently isn't.

  In order to support fanotify on all filesystems two things are needed:

   (1) all filesystems need to support AT_HANDLE_FID

   (2) all filesystems need to report a non-zero f_fsid

  This contains (1) and allows filesystems to encode non-decodable file
  handlers for fanotify without implementing any exportfs operations by
  encoding a file id of type FILEID_INO64_GEN from i_ino and
  i_generation.

  Filesystems that want to opt out of encoding non-decodable file ids
  for fanotify that don't support NFS export can do so by providing an
  empty export_operations struct.

  This also partially addresses (2) by generating f_fsid for simple
  filesystems as well as freevxfs. Remaining filesystems will be dealt
  with by separate patches.

  Finally, this contains the patch from the current exportfs maintainers
  which moves exportfs under vfs with Chuck, Jeff, and Amir as
  maintainers and vfs.git as tree"

* tag 'vfs-6.7.fsid' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  MAINTAINERS: create an entry for exportfs
  fs: fix build error with CONFIG_EXPORTFS=m or not defined
  freevxfs: derive f_fsid from bdev->bd_dev
  fs: report f_fsid from s_dev for "simple" filesystems
  exportfs: support encoding non-decodeable file handles by default
  exportfs: define FILEID_INO64_GEN* file handle types
  exportfs: make ->encode_fh() a mandatory method for NFS export
  exportfs: add helpers to check if filesystem can encode/decode file handles

17 files changed:
1  2 
Documentation/filesystems/nfs/exporting.rst
Documentation/filesystems/porting.rst
MAINTAINERS
fs/befs/linuxvfs.c
fs/efivarfs/super.c
fs/erofs/super.c
fs/ext2/super.c
fs/ext4/super.c
fs/f2fs/super.c
fs/fuse/inode.c
fs/hugetlbfs/inode.c
fs/jfs/super.c
fs/libfs.c
fs/nfsd/export.c
fs/notify/fanotify/fanotify_user.c
fs/overlayfs/util.c
include/linux/exportfs.h

index d69f59700a23359077b94ac126d1e714967e6982,9cc6cb27c4d58c9e47392bc55dc313c4b2a2b881..878e72b2f8b76ab04b11ff4a041887c02b7e8893
@@@ -1050,5 -1050,7 +1050,14 @@@ kill_anon_super(), or kill_block_super(
  
  **mandatory**
  
 +Lock ordering has been changed so that s_umount ranks above open_mutex again.
 +All places where s_umount was taken under open_mutex have been fixed up.
++
++---
++
++**mandatory**
++
+ export_operations ->encode_fh() no longer has a default implementation to
+ encode FILEID_INO32_GEN* file handles.
+ Filesystems that used the default implementation may use the generic helper
+ generic_encode_ino32_fh() explicitly.
diff --cc MAINTAINERS
index 4127a8c79320f29feb8584abbc57e56cb1b85e7b,a194e6b0bcd19a212b7898c2cdcb971e75ed6a2f..79e0a307157f0325bd785caa5c125f5999bd2e11
@@@ -8156,15 -8051,18 +8156,27 @@@ F:   include/linux/fs_types.
  F:    include/uapi/linux/fs.h
  F:    include/uapi/linux/openat2.h
  
+ FILESYSTEMS [EXPORTFS]
+ M:    Chuck Lever <chuck.lever@oracle.com>
+ M:    Jeff Layton <jlayton@kernel.org>
+ R:    Amir Goldstein <amir73il@gmail.com>
+ L:    linux-fsdevel@vger.kernel.org
+ L:    linux-nfs@vger.kernel.org
+ S:    Supported
+ F:    Documentation/filesystems/nfs/exporting.rst
+ F:    fs/exportfs/
+ F:    fs/fhandle.c
+ F:    include/linux/exportfs.h
 +FILESYSTEMS [IOMAP]
 +M:    Christian Brauner <brauner@kernel.org>
 +R:    Darrick J. Wong <djwong@kernel.org>
 +L:    linux-xfs@vger.kernel.org
 +L:    linux-fsdevel@vger.kernel.org
 +S:    Supported
 +F:    fs/iomap/
 +F:    include/linux/iomap.h
 +
  FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  M:    Riku Voipio <riku.voipio@iki.fi>
  L:    linux-hwmon@vger.kernel.org
Simple merge
Simple merge
Simple merge
diff --cc fs/ext2/super.c
Simple merge
diff --cc fs/ext4/super.c
Simple merge
diff --cc fs/f2fs/super.c
Simple merge
diff --cc fs/fuse/inode.c
Simple merge
Simple merge
diff --cc fs/jfs/super.c
Simple merge
diff --cc fs/libfs.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge