clone_ipc_ns() is misnamed, it doesn't clone anything and doesn't uses passed
parameter. Rename it.
create_ipc_ns() will be used by C/R to create ipcns on restart.
Signed-off-by: Alexey Dobriyan <[email protected]>
---
include/linux/ipc_namespace.h | 1 +
ipc/namespace.c | 9 ++-------
2 files changed, 3 insertions(+), 7 deletions(-)
--- a/include/linux/ipc_namespace.h
+++ b/include/linux/ipc_namespace.h
@@ -97,6 +97,7 @@ static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; }
#if defined(CONFIG_IPC_NS)
extern void free_ipc_ns(struct ipc_namespace *ns);
+struct ipc_namespace *create_ipc_ns(void);
extern struct ipc_namespace *copy_ipcs(unsigned long flags,
struct ipc_namespace *ns);
extern void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids,
--- a/ipc/namespace.c
+++ b/ipc/namespace.c
@@ -14,7 +14,7 @@
#include "util.h"
-static struct ipc_namespace *clone_ipc_ns(struct ipc_namespace *old_ns)
+struct ipc_namespace *create_ipc_ns(void)
{
struct ipc_namespace *ns;
int err;
@@ -48,14 +48,9 @@ static struct ipc_namespace *clone_ipc_ns(struct ipc_namespace *old_ns)
struct ipc_namespace *copy_ipcs(unsigned long flags, struct ipc_namespace *ns)
{
- struct ipc_namespace *new_ns;
-
if (!(flags & CLONE_NEWIPC))
return get_ipc_ns(ns);
-
- new_ns = clone_ipc_ns(ns);
-
- return new_ns;
+ return create_ipc_ns();
}
/*
* Alexey Dobriyan <[email protected]> wrote:
> --- a/include/linux/ipc_namespace.h
> +++ b/include/linux/ipc_namespace.h
> @@ -97,6 +97,7 @@ static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; }
>
> #if defined(CONFIG_IPC_NS)
> extern void free_ipc_ns(struct ipc_namespace *ns);
> +struct ipc_namespace *create_ipc_ns(void);
> extern struct ipc_namespace *copy_ipcs(unsigned long flags,
> struct ipc_namespace *ns);
> extern void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids,
Hm, doesnt the existing, correct pattern strike your eyes out:
extern foo1();
extern foo2();
extern foo3();
and then you add a new method in this inconsistent way:
extern foo1();
foox();
extern foo2();
extern foo3();
Instead of continuing the existing pattern via:
extern foo1();
extern foox();
extern foo2();
extern foo3();
?
I think we need a new checkpatch warning for such things. It might
be a small detail in the big picture, but a thousand small details
create a big mess easily so we have to try to get all the small
details right, all the time - that is the only way to create a
better kernel in the end.
Thanks,
Ingo
On Fri, Apr 10, 2009 at 11:01:49AM +0200, Ingo Molnar wrote:
>
> * Alexey Dobriyan <[email protected]> wrote:
>
> > --- a/include/linux/ipc_namespace.h
> > +++ b/include/linux/ipc_namespace.h
> > @@ -97,6 +97,7 @@ static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; }
> >
> > #if defined(CONFIG_IPC_NS)
> > extern void free_ipc_ns(struct ipc_namespace *ns);
> > +struct ipc_namespace *create_ipc_ns(void);
> > extern struct ipc_namespace *copy_ipcs(unsigned long flags,
> > struct ipc_namespace *ns);
> > extern void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids,
>
> Hm, doesnt the existing, correct pattern strike your eyes out:
>
> extern foo1();
> extern foo2();
> extern foo3();
>
> and then you add a new method in this inconsistent way:
>
> extern foo1();
> foox();
> extern foo2();
> extern foo3();
>
> Instead of continuing the existing pattern via:
>
> extern foo1();
> extern foox();
> extern foo2();
> extern foo3();
>
> ?
>
> I think we need a new checkpatch warning for such things. It might
> be a small detail in the big picture, but a thousand small details
> create a big mess easily so we have to try to get all the small
> details right, all the time - that is the only way to create a
> better kernel in the end.
We (OK, I don't care anyway) should remove extern in front of prototypes.
They slow down compilation, they make easier to overcome 80-column limit resulting in
multiline prototypes which are ugly.
Quoting Alexey Dobriyan ([email protected]):
> clone_ipc_ns() is misnamed, it doesn't clone anything and doesn't uses passed
> parameter. Rename it.
>
> create_ipc_ns() will be used by C/R to create ipcns on restart.
>
> Signed-off-by: Alexey Dobriyan <[email protected]>
Acked-by: Serge Hallyn <[email protected]>
> ---
>
> include/linux/ipc_namespace.h | 1 +
> ipc/namespace.c | 9 ++-------
> 2 files changed, 3 insertions(+), 7 deletions(-)
>
> --- a/include/linux/ipc_namespace.h
> +++ b/include/linux/ipc_namespace.h
> @@ -97,6 +97,7 @@ static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; }
>
> #if defined(CONFIG_IPC_NS)
> extern void free_ipc_ns(struct ipc_namespace *ns);
> +struct ipc_namespace *create_ipc_ns(void);
> extern struct ipc_namespace *copy_ipcs(unsigned long flags,
> struct ipc_namespace *ns);
> extern void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids,
> --- a/ipc/namespace.c
> +++ b/ipc/namespace.c
> @@ -14,7 +14,7 @@
>
> #include "util.h"
>
> -static struct ipc_namespace *clone_ipc_ns(struct ipc_namespace *old_ns)
> +struct ipc_namespace *create_ipc_ns(void)
> {
> struct ipc_namespace *ns;
> int err;
> @@ -48,14 +48,9 @@ static struct ipc_namespace *clone_ipc_ns(struct ipc_namespace *old_ns)
>
> struct ipc_namespace *copy_ipcs(unsigned long flags, struct ipc_namespace *ns)
> {
> - struct ipc_namespace *new_ns;
> -
> if (!(flags & CLONE_NEWIPC))
> return get_ipc_ns(ns);
> -
> - new_ns = clone_ipc_ns(ns);
> -
> - return new_ns;
> + return create_ipc_ns();
> }
>
> /*