Nowadays PF_KTHREAD is sticky and it was never protected by ->alloc_lock.
Move the PF_KTHREAD check outside of task_lock() section to make this code
more understandable.
Link: https://lkml.kernel.org/r/20240626191017.GA20031@redhat.com
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 {
        struct mm_struct *mm;
 
+       if (task->flags & PF_KTHREAD)
+               return NULL;
+
        task_lock(task);
        mm = task->mm;
-       if (mm) {
-               if (task->flags & PF_KTHREAD)
-                       mm = NULL;
-               else
-                       mmget(mm);
-       }
+       if (mm)
+               mmget(mm);
        task_unlock(task);
        return mm;
 }