Quoting Oleg Nesterov (oleg@xxxxxxxxxx):On 02/21, Daniel Lezcano wrote:Uh, yeah. I should remove the 'ns' argument there shouldn't I.On 02/21/2011 05:01 AM, Serge E. Hallyn wrote:To me tsk looks more readable, I meanTo do so we need to pass in the task_struct who'll get the utsname,Why don't we pass 'user_ns' instead of 'tsk' ? that will look
so we can get its user_ns.
-extern struct uts_namespace *copy_utsname(unsigned long flags,
- struct uts_namespace *ns);
+extern struct uts_namespace *copy_utsname(struct task_struct *tsk,
+ unsigned long flags,
+ struct uts_namespace *ns);
semantically clearer for the caller no ?
(example below).
...
new_nsp->uts_ns = copy_utsname(flags, tsk->nsproxy->uts_ns, task_cred_xxx(tsk, user)->user_ns);
new_nsp->uts_ns = copy_utsname(flags, tsk);
copy_utsname() can find both uts_ns and user_ns looking at task_strcut.
Daniel, does that sway your opinion then?