Commit 1c582c6d authored by Thomas Weißschuh's avatar Thomas Weißschuh Committed by Dominique Martinet

9p/trans_fd: split into dedicated module

This allows these transports only to be used when needed.

Link: https://lkml.kernel.org/r/20211103193823.111007-3-linux@weissschuh.netSigned-off-by: default avatarThomas Weißschuh <linux@weissschuh.net>
[Dominique: Kconfig NET_9P_FD: -depends VIRTIO, +default NET_9P]
Signed-off-by: default avatarDominique Martinet <asmadeus@codewreck.org>
parent 90d6cf34
...@@ -551,6 +551,4 @@ struct p9_fcall { ...@@ -551,6 +551,4 @@ struct p9_fcall {
int p9_errstr2errno(char *errstr, int len); int p9_errstr2errno(char *errstr, int len);
int p9_error_init(void); int p9_error_init(void);
int p9_trans_fd_init(void);
void p9_trans_fd_exit(void);
#endif /* NET_9P_H */ #endif /* NET_9P_H */
...@@ -15,6 +15,13 @@ menuconfig NET_9P ...@@ -15,6 +15,13 @@ menuconfig NET_9P
if NET_9P if NET_9P
config NET_9P_FD
default NET_9P
tristate "9P FD Transport"
help
This builds support for transports over TCP, Unix sockets and
filedescriptors.
config NET_9P_VIRTIO config NET_9P_VIRTIO
depends on VIRTIO depends on VIRTIO
tristate "9P Virtio Transport" tristate "9P Virtio Transport"
......
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_NET_9P) := 9pnet.o obj-$(CONFIG_NET_9P) := 9pnet.o
obj-$(CONFIG_NET_9P_FD) += 9pnet_fd.o
obj-$(CONFIG_NET_9P_XEN) += 9pnet_xen.o obj-$(CONFIG_NET_9P_XEN) += 9pnet_xen.o
obj-$(CONFIG_NET_9P_VIRTIO) += 9pnet_virtio.o obj-$(CONFIG_NET_9P_VIRTIO) += 9pnet_virtio.o
obj-$(CONFIG_NET_9P_RDMA) += 9pnet_rdma.o obj-$(CONFIG_NET_9P_RDMA) += 9pnet_rdma.o
...@@ -9,9 +10,11 @@ obj-$(CONFIG_NET_9P_RDMA) += 9pnet_rdma.o ...@@ -9,9 +10,11 @@ obj-$(CONFIG_NET_9P_RDMA) += 9pnet_rdma.o
client.o \ client.o \
error.o \ error.o \
protocol.o \ protocol.o \
trans_fd.o \
trans_common.o \ trans_common.o \
9pnet_fd-objs := \
trans_fd.o \
9pnet_virtio-objs := \ 9pnet_virtio-objs := \
trans_virtio.o \ trans_virtio.o \
......
...@@ -177,7 +177,6 @@ static int __init init_p9(void) ...@@ -177,7 +177,6 @@ static int __init init_p9(void)
p9_error_init(); p9_error_init();
pr_info("Installing 9P2000 support\n"); pr_info("Installing 9P2000 support\n");
p9_trans_fd_init();
return ret; return ret;
} }
...@@ -191,7 +190,6 @@ static void __exit exit_p9(void) ...@@ -191,7 +190,6 @@ static void __exit exit_p9(void)
{ {
pr_info("Unloading 9P2000 support\n"); pr_info("Unloading 9P2000 support\n");
p9_trans_fd_exit();
p9_client_exit(); p9_client_exit();
} }
......
...@@ -1090,6 +1090,7 @@ static struct p9_trans_module p9_tcp_trans = { ...@@ -1090,6 +1090,7 @@ static struct p9_trans_module p9_tcp_trans = {
.show_options = p9_fd_show_options, .show_options = p9_fd_show_options,
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
MODULE_ALIAS_9P("tcp");
static struct p9_trans_module p9_unix_trans = { static struct p9_trans_module p9_unix_trans = {
.name = "unix", .name = "unix",
...@@ -1103,6 +1104,7 @@ static struct p9_trans_module p9_unix_trans = { ...@@ -1103,6 +1104,7 @@ static struct p9_trans_module p9_unix_trans = {
.show_options = p9_fd_show_options, .show_options = p9_fd_show_options,
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
MODULE_ALIAS_9P("unix");
static struct p9_trans_module p9_fd_trans = { static struct p9_trans_module p9_fd_trans = {
.name = "fd", .name = "fd",
...@@ -1116,6 +1118,7 @@ static struct p9_trans_module p9_fd_trans = { ...@@ -1116,6 +1118,7 @@ static struct p9_trans_module p9_fd_trans = {
.show_options = p9_fd_show_options, .show_options = p9_fd_show_options,
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
MODULE_ALIAS_9P("fd");
/** /**
* p9_poll_workfn - poll worker thread * p9_poll_workfn - poll worker thread
...@@ -1149,7 +1152,7 @@ static void p9_poll_workfn(struct work_struct *work) ...@@ -1149,7 +1152,7 @@ static void p9_poll_workfn(struct work_struct *work)
p9_debug(P9_DEBUG_TRANS, "finish\n"); p9_debug(P9_DEBUG_TRANS, "finish\n");
} }
int p9_trans_fd_init(void) static int __init p9_trans_fd_init(void)
{ {
v9fs_register_trans(&p9_tcp_trans); v9fs_register_trans(&p9_tcp_trans);
v9fs_register_trans(&p9_unix_trans); v9fs_register_trans(&p9_unix_trans);
...@@ -1158,10 +1161,17 @@ int p9_trans_fd_init(void) ...@@ -1158,10 +1161,17 @@ int p9_trans_fd_init(void)
return 0; return 0;
} }
void p9_trans_fd_exit(void) static void __exit p9_trans_fd_exit(void)
{ {
flush_work(&p9_poll_work); flush_work(&p9_poll_work);
v9fs_unregister_trans(&p9_tcp_trans); v9fs_unregister_trans(&p9_tcp_trans);
v9fs_unregister_trans(&p9_unix_trans); v9fs_unregister_trans(&p9_unix_trans);
v9fs_unregister_trans(&p9_fd_trans); v9fs_unregister_trans(&p9_fd_trans);
} }
module_init(p9_trans_fd_init);
module_exit(p9_trans_fd_exit);
MODULE_AUTHOR("Eric Van Hensbergen <ericvh@gmail.com>");
MODULE_DESCRIPTION("Filedescriptor Transport for 9P");
MODULE_LICENSE("GPL");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment