Signed-off-by: Stanislav Kinsburskiy <skinsbur...@virtuozzo.com>
---
 fs/autofs4/inode.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
index b23cf2a..989ac38 100644
--- a/fs/autofs4/inode.c
+++ b/fs/autofs4/inode.c
@@ -217,6 +217,7 @@ int autofs4_fill_super(struct super_block *s, void *data, 
int silent)
        int pgrp;
        bool pgrp_set = false;
        int ret = -EINVAL;
+       struct task_struct *tsk;
 
        sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
        if (!sbi)
@@ -281,10 +282,25 @@ int autofs4_fill_super(struct super_block *s, void *data, 
int silent)
                                pgrp);
                        goto fail_dput;
                }
+               tsk = get_pid_task(sbi->oz_pgrp, PIDTYPE_PGID);
+               if (!tsk) {
+                       pr_warn("autofs: could not find process group leader 
%d\n",
+                               pgrp);
+                       goto fail_put_pid;
+               }
        } else {
                sbi->oz_pgrp = get_task_pid(current, PIDTYPE_PGID);
+               get_task_struct(current);
+               tsk = current;
        }
 
+       if (test_tsk_thread_flag(tsk, TIF_ADDR32))
+               sbi->is32bit = 1;
+       else
+               sbi->is32bit = 0;
+
+       put_task_struct(tsk);
+
        if (autofs_type_trigger(sbi->type))
                __managed_dentry_set_managed(root);
 

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to