[Devel] [PATCH RHEL7 COMMIT] ve/binfmt_misc: do not use s_ns
Konstantin Khorenko
khorenko at virtuozzo.com
Fri Aug 28 05:42:44 PDT 2015
The commit is pushed to "branch-rh7-3.10.0-229.7.2-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-229.7.2.vz7.6.3
------>
commit a98a90ea907f522f1ae6ff0e1c6e78a39ade2494
Author: Vladimir Davydov <vdavydov at parallels.com>
Date: Fri Aug 28 16:42:44 2015 +0400
ve/binfmt_misc: do not use s_ns
Patchset description:
zap sb->s_ns + fix memleak in binfmt_misc
Vladimir Davydov (6):
binfmt_misc: do not use sb->s_fs_info
Revert "VE/VFS: use sb->s_ns member to store namespace for mount_ns()
calls"
Revert "ve/sunrpc: use correct pointer to net_namespace in auth_gss.c"
Revert "nfsd/sunrpc/mqueue: use sb->s_ns instead of data in
fill_super"
binfmt_misc: do not use s_ns
binfmt_misc: destroy all nodes on ve stop
https://jira.sw.ru/browse/PSBM-39154
Reviewed-by: Cyrill Gorcunov <gorcunov at virtuozzo.com>
======================
This patch description:
Since 9e7411c5c3b5 was reverted, we must use sb->s_fs_info for storing a
pointer to the namespace.
This could be merged to 0b0dbb644794 ("VE/BINFTM: virtualization").
Signed-off-by: Vladimir Davydov <vdavydov at parallels.com>
---
fs/binfmt_misc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
index d0cb80c..4487153 100644
--- a/fs/binfmt_misc.c
+++ b/fs/binfmt_misc.c
@@ -65,7 +65,7 @@ struct binfmt_misc {
int entry_count;
};
-#define BINFMT_MISC(sb) (((struct ve_struct *)(sb)->s_ns)->binfmt_misc)
+#define BINFMT_MISC(sb) (((struct ve_struct *)(sb)->s_fs_info)->binfmt_misc)
/*
* Check if we support the binfmt
@@ -684,7 +684,7 @@ static const struct file_operations bm_status_operations = {
static void bm_put_super(struct super_block *sb)
{
struct binfmt_misc *bm_data = BINFMT_MISC(sb);
- struct ve_struct *ve = sb->s_ns;
+ struct ve_struct *ve = sb->s_fs_info;
bm_data->enabled = 0;
put_ve(ve);
@@ -703,7 +703,7 @@ static int bm_fill_super(struct super_block * sb, void * data, int silent)
[3] = {"register", &bm_register_operations, S_IWUSR},
/* last one */ {""}
};
- struct ve_struct *ve = sb->s_ns;
+ struct ve_struct *ve = data;
struct binfmt_misc *bm_data = ve->binfmt_misc;
int err;
More information about the Devel
mailing list