[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