mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-21 18:14:48 +08:00
ffe1f0df58
Bi-directional RPC support means code in svcrdma.ko invokes a bit of
code in xprtrdma.ko, and vice versa. To avoid loader/linker loops,
merge the server and client side modules together into a single
module.
When backchannel capabilities are added, the combined module will
register all needed transport capabilities so that Upper Layer
consumers automatically have everything needed to create a
bi-directional transport connection.
Module aliases are added for backwards compatibility with user
space, which still may expect svcrdma.ko or xprtrdma.ko to be
present.
This commit reverts commit 2e8c12e1b7
("xprtrdma: add separate
Kconfig options for NFSoRDMA client and server support") and
provides a single CONFIG option for enabling the new module.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
47 lines
804 B
C
47 lines
804 B
C
/*
|
|
* Copyright (c) 2015 Oracle. All rights reserved.
|
|
*/
|
|
|
|
/* rpcrdma.ko module initialization
|
|
*/
|
|
|
|
#include <linux/module.h>
|
|
#include <linux/init.h>
|
|
#include <linux/sunrpc/svc_rdma.h>
|
|
#include "xprt_rdma.h"
|
|
|
|
#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
|
|
# define RPCDBG_FACILITY RPCDBG_TRANS
|
|
#endif
|
|
|
|
MODULE_AUTHOR("Open Grid Computing and Network Appliance, Inc.");
|
|
MODULE_DESCRIPTION("RPC/RDMA Transport");
|
|
MODULE_LICENSE("Dual BSD/GPL");
|
|
MODULE_ALIAS("svcrdma");
|
|
MODULE_ALIAS("xprtrdma");
|
|
|
|
static void __exit rpc_rdma_cleanup(void)
|
|
{
|
|
xprt_rdma_cleanup();
|
|
svc_rdma_cleanup();
|
|
}
|
|
|
|
static int __init rpc_rdma_init(void)
|
|
{
|
|
int rc;
|
|
|
|
rc = svc_rdma_init();
|
|
if (rc)
|
|
goto out;
|
|
|
|
rc = xprt_rdma_init();
|
|
if (rc)
|
|
svc_rdma_cleanup();
|
|
|
|
out:
|
|
return rc;
|
|
}
|
|
|
|
module_init(rpc_rdma_init);
|
|
module_exit(rpc_rdma_cleanup);
|