Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81c39329 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by J. Bruce Fields
Browse files

nfsd: add a new config option for the block layout driver



Split the config symbols into a generic pNFS one, which is invisible
and gets selected by the layout drivers, and one for the block layout
driver.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent d9186c03
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -84,12 +84,17 @@ config NFSD_V4
	  If unsure, say N.

config NFSD_PNFS
	bool "NFSv4.1 server support for Parallel NFS (pNFS)"
	bool

config NFSD_BLOCKLAYOUT
	bool "NFSv4.1 server support for pNFS block layouts"
	depends on NFSD_V4
	select NFSD_PNFS
	help
	  This option enables support for the parallel NFS features of the
	  minor version 1 of the NFSv4 protocol (RFC5661) in the kernel's NFS
	  server.
	  This option enables support for the exporting pNFS block layouts
	  in the kernel's NFS server. The pNFS block layout enables NFS
	  clients to directly perform I/O to block devices accesible to both
	  the server and the clients.  See RFC 5663 for more details.

	  If unsure, say N.

+2 −1
Original line number Diff line number Diff line
@@ -17,4 +17,5 @@ nfsd-$(CONFIG_NFSD_V3) += nfs3proc.o nfs3xdr.o
nfsd-$(CONFIG_NFSD_V3_ACL) += nfs3acl.o
nfsd-$(CONFIG_NFSD_V4)	+= nfs4proc.o nfs4xdr.o nfs4state.o nfs4idmap.o \
			   nfs4acl.o nfs4callback.o nfs4recover.o
nfsd-$(CONFIG_NFSD_PNFS) += nfs4layouts.o blocklayout.o blocklayoutxdr.o
nfsd-$(CONFIG_NFSD_PNFS) += nfs4layouts.o
nfsd-$(CONFIG_NFSD_BLOCKLAYOUT) += blocklayout.o blocklayoutxdr.o
+4 −0
Original line number Diff line number Diff line
@@ -26,7 +26,9 @@ static const struct nfsd4_callback_ops nfsd4_cb_layout_ops;
static const struct lock_manager_operations nfsd4_layouts_lm_ops;

const struct nfsd4_layout_ops *nfsd4_layout_ops[LAYOUT_TYPE_MAX] =  {
#ifdef CONFIG_NFSD_BLOCKLAYOUT
	[LAYOUT_BLOCK_VOLUME]	= &bl_layout_ops,
#endif
};

/* pNFS device ID to export fsid mapping */
@@ -121,10 +123,12 @@ void nfsd4_setup_layout_type(struct svc_export *exp)
	if (!(exp->ex_flags & NFSEXP_PNFS))
		return;

#ifdef CONFIG_NFSD_BLOCKLAYOUT
	if (sb->s_export_op->get_uuid &&
	    sb->s_export_op->map_blocks &&
	    sb->s_export_op->commit_blocks)
		exp->ex_layout_type = LAYOUT_BLOCK_VOLUME;
#endif
}

static void
+2 −0
Original line number Diff line number Diff line
@@ -35,7 +35,9 @@ struct nfsd4_layout_ops {
};

extern const struct nfsd4_layout_ops *nfsd4_layout_ops[];
#ifdef CONFIG_NFSD_BLOCKLAYOUT
extern const struct nfsd4_layout_ops bl_layout_ops;
#endif

__be32 nfsd4_preprocess_layout_stateid(struct svc_rqst *rqstp,
		struct nfsd4_compound_state *cstate, stateid_t *stateid,
+1 −1
Original line number Diff line number Diff line
@@ -121,4 +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_NFSD_PNFS)		+= xfs_pnfs.o
xfs-$(CONFIG_NFSD_BLOCKLAYOUT)	+= xfs_pnfs.o
Loading