[Devel] [PATCH RHEL COMMIT] ve/fs/nfsd: NFSd containerization
Konstantin Khorenko
khorenko at virtuozzo.com
Fri Oct 1 18:40:15 MSK 2021
The commit is pushed to "branch-rh9-5.14.vz9.1.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after ark-5.14
------>
commit 2cd6fdf32b1c3ee5935e4383c88a30c18ed36ca9
Author: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
Date: Fri Oct 1 18:40:15 2021 +0300
ve/fs/nfsd: NFSd containerization
Does:
1) virtualize nfsd file system
2) allows to mount from CTs initial user ns
3) add VE_FEATURE_NFSD check during nfsd mount
Signed-off-by: Stanislav Kinsbursky <skinsbursky at parallels.com>
+++
ve/nfsd: allow nfsd mount inside container init userns
v2 changes by khorenko:
- dropped the current_user_ns_initial() check in nfsd_mount(),
same check is performed in sget_userns() now due to FS_VE_MOUNT flag
usage
https://jira.sw.ru/browse/PSBM-130825
mFixes: 92cc82cd5998 ("ve/fs/nfsd: NFSd containerization")
Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
Reviewed-by: Konstantin Khorenko <khorenko at virtuozzo.com>
(cherry-picked from vz8 commit 9b7950731ac5 ("ve/fs/nfsd: NFSd
containerization"))
Signed-off-by: Nikita Yushchenko <nikita.yushchenko at virtuozzo.com>
---
fs/nfsd/nfsctl.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index c2c3d9077dc5..51d36730208b 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -18,6 +18,8 @@
#include <linux/sunrpc/rpc_pipe_fs.h>
#include <linux/module.h>
#include <linux/fsnotify.h>
+#include <linux/ve.h>
+#include <uapi/linux/vzcalluser.h>
#include "idmap.h"
#include "nfsd.h"
@@ -1409,6 +1411,9 @@ static const struct fs_context_operations nfsd_fs_context_ops = {
static int nfsd_init_fs_context(struct fs_context *fc)
{
+ if (!(get_exec_env()->features & VE_FEATURE_NFSD))
+ return -ENODEV;
+
put_user_ns(fc->user_ns);
fc->user_ns = get_user_ns(fc->net_ns->user_ns);
fc->ops = &nfsd_fs_context_ops;
@@ -1430,6 +1435,7 @@ static struct file_system_type nfsd_fs_type = {
.name = "nfsd",
.init_fs_context = nfsd_init_fs_context,
.kill_sb = nfsd_umount,
+ .fs_flags = FS_VIRTUALIZED | FS_VE_MOUNT,
};
MODULE_ALIAS_FS("nfsd");
More information about the Devel
mailing list