[PATCH 2/2] cgroup: switch to proc_create() - Kernel

This is a discussion on [PATCH 2/2] cgroup: switch to proc_create() - Kernel ; There is a race between create_proc_entry() and the assignment of file ops. proc_create() is invented to fix it. Signed-off-by: Li Zefan --- kernel/cgroup.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 8d833b6..8d45126 100644 ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: [PATCH 2/2] cgroup: switch to proc_create()

  1. [PATCH 2/2] cgroup: switch to proc_create()

    There is a race between create_proc_entry() and the assignment
    of file ops. proc_create() is invented to fix it.

    Signed-off-by: Li Zefan
    ---
    kernel/cgroup.c | 5 +----
    1 files changed, 1 insertions(+), 4 deletions(-)

    diff --git a/kernel/cgroup.c b/kernel/cgroup.c
    index 8d833b6..8d45126 100644
    --- a/kernel/cgroup.c
    +++ b/kernel/cgroup.c
    @@ -2489,7 +2489,6 @@ int __init cgroup_init(void)
    {
    int err;
    int i;
    - struct proc_dir_entry *entry;

    err = bdi_init(&cgroup_backing_dev_info);
    if (err)
    @@ -2505,9 +2504,7 @@ int __init cgroup_init(void)
    if (err < 0)
    goto out;

    - entry = create_proc_entry("cgroups", 0, NULL);
    - if (entry)
    - entry->proc_fops = &proc_cgroupstats_operations;
    + proc_create("cgroups", 0, NULL, &proc_cgroupstats_operations);

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

  2. Re: [PATCH 2/2] cgroup: switch to proc_create()

    On Mon, Mar 10, 2008 at 12:30 AM, Li Zefan wrote:
    > There is a race between create_proc_entry() and the assignment
    > of file ops. proc_create() is invented to fix it.
    >
    > Signed-off-by: Li Zefan


    Acked-by: Paul Menage

    Doesn't seem to be a serious race since there's nothing in userspace
    at this point to read the file. But replacing four lines with one is
    generally a good thing.

    Paul

    > ---
    > kernel/cgroup.c | 5 +----
    > 1 files changed, 1 insertions(+), 4 deletions(-)
    >
    > diff --git a/kernel/cgroup.c b/kernel/cgroup.c
    > index 8d833b6..8d45126 100644
    > --- a/kernel/cgroup.c
    > +++ b/kernel/cgroup.c
    > @@ -2489,7 +2489,6 @@ int __init cgroup_init(void)
    > {
    > int err;
    > int i;
    > - struct proc_dir_entry *entry;
    >
    > err = bdi_init(&cgroup_backing_dev_info);
    > if (err)
    > @@ -2505,9 +2504,7 @@ int __init cgroup_init(void)
    > if (err < 0)
    > goto out;
    >
    > - entry = create_proc_entry("cgroups", 0, NULL);
    > - if (entry)
    > - entry->proc_fops = &proc_cgroupstats_operations;
    > + proc_create("cgroups", 0, NULL, &proc_cgroupstats_operations);
    >
    > out:
    > if (err)
    > --
    > 1.5.4.rc3
    >

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

  3. Re: [PATCH 2/2] cgroup: switch to proc_create()

    Paul Menage wrote:
    > On Mon, Mar 10, 2008 at 12:30 AM, Li Zefan wrote:
    >> There is a race between create_proc_entry() and the assignment
    >> of file ops. proc_create() is invented to fix it.
    >>
    >> Signed-off-by: Li Zefan

    >
    > Acked-by: Paul Menage
    >
    > Doesn't seem to be a serious race since there's nothing in userspace
    > at this point to read the file. But replacing four lines with one is
    > generally a good thing.
    >


    Yes I know, it's a slight race in case of modular code, but the aim is
    to replace all the use of create_proc_entry() with proc_create().

    > Paul
    >

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

+ Reply to Thread