Re: [PATCH 1/4] userns: let clone_uts_ns() handle setting uts->user_ns

From: Daniel Lezcano
Date: Mon Feb 21 2011 - 09:23:52 EST


On 02/21/2011 02:58 PM, Serge E. Hallyn wrote:
Quoting Oleg Nesterov (oleg@xxxxxxxxxx):
On 02/21, Daniel Lezcano wrote:
On 02/21/2011 05:01 AM, Serge E. Hallyn wrote:
To do so we need to pass in the task_struct who'll get the utsname,
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);
Why don't we pass 'user_ns' instead of 'tsk' ? that will look
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);
To me tsk looks more readable, I mean

new_nsp->uts_ns = copy_utsname(flags, tsk);

copy_utsname() can find both uts_ns and user_ns looking at task_strcut.
Uh, yeah. I should remove the 'ns' argument there shouldn't I.

Daniel, does that sway your opinion then?

Well, I prefer to pass the needed parameters to a function. AFAICS, 'tsk' is not really needed but 'user_ns'.
But it is a detail, so if passing the tsk parameter in the other copy_* functions helps to cleanup, that will be consistent.
So I am fine with that.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/