xfs: abstract block export operations from nfsd layouts
authorBenjamin Coddington <bcodding@redhat.com>
Fri, 8 Jul 2016 13:53:20 +0000 (09:53 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 15 Jul 2016 19:31:29 +0000 (15:31 -0400)
Instead of creeping pnfs layout configuration into filesystems, move the
definition of block-based export operations under a more abstract
configuration.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/Kconfig
fs/nfsd/Kconfig
fs/xfs/Makefile
fs/xfs/xfs_export.c
fs/xfs/xfs_pnfs.h

index b8fcb416be72983e77a11d033f044d14685f8e07..4d2f9210e748a47d64f58401cc49b3e04e7c1e0a 100644 (file)
@@ -67,6 +67,12 @@ config FS_POSIX_ACL
 config EXPORTFS
        tristate
 
 config EXPORTFS
        tristate
 
+config EXPORTFS_BLOCK_OPS
+       bool "Enable filesystem export operations for block IO"
+       help
+         This option enables the export operations for a filesystem to support
+         external block IO.
+
 config FILE_LOCKING
        bool "Enable POSIX file locking API" if EXPERT
        default y
 config FILE_LOCKING
        bool "Enable POSIX file locking API" if EXPERT
        default y
index e64d1a3ec7700465d793765e5b0502d6d6fdba29..47febcf9918502a2b55b99a571c50b6b1c824cc3 100644 (file)
@@ -90,6 +90,7 @@ config NFSD_BLOCKLAYOUT
        bool "NFSv4.1 server support for pNFS block layouts"
        depends on NFSD_V4 && BLOCK
        select NFSD_PNFS
        bool "NFSv4.1 server support for pNFS block layouts"
        depends on NFSD_V4 && BLOCK
        select NFSD_PNFS
+       select EXPORTFS_BLOCK_OPS
        help
          This option enables support for the exporting pNFS block layouts
          in the kernel's NFS server. The pNFS block layout enables NFS
        help
          This option enables support for the exporting pNFS block layouts
          in the kernel's NFS server. The pNFS block layout enables NFS
@@ -102,6 +103,7 @@ config NFSD_SCSILAYOUT
        bool "NFSv4.1 server support for pNFS SCSI layouts"
        depends on NFSD_V4 && BLOCK
        select NFSD_PNFS
        bool "NFSv4.1 server support for pNFS SCSI layouts"
        depends on NFSD_V4 && BLOCK
        select NFSD_PNFS
+       select EXPORTFS_BLOCK_OPS
        help
          This option enables support for the exporting pNFS SCSI layouts
          in the kernel's NFS server. The pNFS SCSI layout enables NFS
        help
          This option enables support for the exporting pNFS SCSI layouts
          in the kernel's NFS server. The pNFS SCSI layout enables NFS
index 3542d94fddce5ca4a45e33e08a25fc894b2264eb..52c288514be1ff729a38f7b6d9a8e7232ea60b67 100644 (file)
@@ -121,5 +121,4 @@ xfs-$(CONFIG_XFS_RT)                += xfs_rtalloc.o
 xfs-$(CONFIG_XFS_POSIX_ACL)    += xfs_acl.o
 xfs-$(CONFIG_SYSCTL)           += xfs_sysctl.o
 xfs-$(CONFIG_COMPAT)           += xfs_ioctl32.o
 xfs-$(CONFIG_XFS_POSIX_ACL)    += xfs_acl.o
 xfs-$(CONFIG_SYSCTL)           += xfs_sysctl.o
 xfs-$(CONFIG_COMPAT)           += xfs_ioctl32.o
-xfs-$(CONFIG_NFSD_BLOCKLAYOUT) += xfs_pnfs.o
-xfs-$(CONFIG_NFSD_SCSILAYOUT)  += xfs_pnfs.o
+xfs-$(CONFIG_EXPORTFS_BLOCK_OPS)       += xfs_pnfs.o
index a1b2dd828b9d0ae447419b304793d03e9ec144f5..fe1bfee35898ea4d9b657c7935f90f586e7ab9c9 100644 (file)
@@ -246,7 +246,7 @@ const struct export_operations xfs_export_operations = {
        .fh_to_parent           = xfs_fs_fh_to_parent,
        .get_parent             = xfs_fs_get_parent,
        .commit_metadata        = xfs_fs_nfs_commit_metadata,
        .fh_to_parent           = xfs_fs_fh_to_parent,
        .get_parent             = xfs_fs_get_parent,
        .commit_metadata        = xfs_fs_nfs_commit_metadata,
-#ifdef CONFIG_NFSD_BLOCKLAYOUT
+#ifdef CONFIG_EXPORTFS_BLOCK_OPS
        .get_uuid               = xfs_fs_get_uuid,
        .map_blocks             = xfs_fs_map_blocks,
        .commit_blocks          = xfs_fs_commit_blocks,
        .get_uuid               = xfs_fs_get_uuid,
        .map_blocks             = xfs_fs_map_blocks,
        .commit_blocks          = xfs_fs_commit_blocks,
index 93f74853961b1cce598f5b83e96e622457ae173e..e8339f74966b18b43a929ed29f3d9259aa17142b 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef _XFS_PNFS_H
 #define _XFS_PNFS_H 1
 
 #ifndef _XFS_PNFS_H
 #define _XFS_PNFS_H 1
 
-#if defined(CONFIG_NFSD_BLOCKLAYOUT) || defined(CONFIG_NFSD_SCSILAYOUT)
+#ifdef CONFIG_EXPORTFS_BLOCK_OPS
 int xfs_fs_get_uuid(struct super_block *sb, u8 *buf, u32 *len, u64 *offset);
 int xfs_fs_map_blocks(struct inode *inode, loff_t offset, u64 length,
                struct iomap *iomap, bool write, u32 *device_generation);
 int xfs_fs_get_uuid(struct super_block *sb, u8 *buf, u32 *len, u64 *offset);
 int xfs_fs_map_blocks(struct inode *inode, loff_t offset, u64 length,
                struct iomap *iomap, bool write, u32 *device_generation);
@@ -15,5 +15,5 @@ xfs_break_layouts(struct inode *inode, uint *iolock, bool with_imutex)
 {
        return 0;
 }
 {
        return 0;
 }
-#endif /* CONFIG_NFSD_PNFS */
+#endif /* CONFIG_EXPORTFS_BLOCK_OPS */
 #endif /* _XFS_PNFS_H */
 #endif /* _XFS_PNFS_H */
This page took 0.028442 seconds and 5 git commands to generate.