lkml.org 
[lkml]   [2012]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0/1] turn mm->exe_file into mm->exe_path
On Mon, Mar 05, 2012 at 04:28:26PM +0100, Oleg Nesterov wrote:
> I think the patch is simple and self-explanatory, it simply
> does s/mm->exe_file/mm->exe_path/.
>
> Why do we need mm->exe_file? IIUC, there are 2 reasons:
>
> 1. we do not want O(n) proc/pid/exe looking for the 1st
> VM_EXECUTABLE vma.
>
> 2. we do not want to rely on vma->vm_file->f_path,
> bprm->file->f_op->mmap can change ->vm_file.
>
> Unless there was another subtle reason, "struct path *exe_path"
> can equally work but it looks more clear.
>
> And can't we also remove added_exe_file_vma/removed_exe_file_vma?
> Why do we need mm->num_exe_file_vmas? Afaics it is only needed to
> "free" mm->exe_file if the application unmaps all these vmas. Say,
> to allow to unmount fs.
>
> Can't we simply add PR_CLEAR_MM_EXE_PATH instead? Of course it is
> not enough if ->vm_file still has a reference. But c/r people want
> PR_SET_MM_EXE_FILE anyway, see http://marc.info/?t=133052865500016
> So perhaps we can add PR_SET_MM_EXE_PATH which accepts NULL as well
> and kill this counter?
>

So, if I understand you correctly, if there is exe_path, I would
simply put() it and get() and assign new one. Looks cool for me.

Not sure where we may use PR_SET_MM_EXE_PATH with NULL to kill
num_exe_file_vmas from user space though (or to kill this exe_path
in case if num_exe_file_vmas is removed from code).

Cyrill


\
 
 \ /
  Last update: 2012-03-05 18:09    [W:0.099 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site