* Ivana Varekova <[email protected]> [2009-06-17 14:47:19]:

> This patche add a test to cgroup_init function, which prevent to add
> multiple records for the same controller (this is a problem eg. in
> cgroup_get_cgroup function - which looks to mount table and add all
> relevant controllers using cgroup_add_controller function and when the
> function calls cgroup_add_cgroup function twice on the same controller,
> it returns error so the result is cgroup_get_cgroup failed).
> 
> Signed-off-by: Ivana Varekova <[email protected]>
> ---
> 
>  0 files changed, 0 insertions(+), 0 deletions(-)
> 
> diff --git a/src/api.c b/src/api.c
> index 4f88d20..e2c6e37 100644
> --- a/src/api.c
> +++ b/src/api.c
> @@ -570,6 +570,8 @@ int cgroup_init()
>       char subsys_name[FILENAME_MAX];
>       int hierarchy, num_cgroups, enabled;
>       int i=0;
> +     int j;
> +     int duplicate = 0;
>       char *mntopt = NULL;
>       int err;
>       char *buf = NULL;
> @@ -648,6 +650,21 @@ int cgroup_init()
>                               continue;
> 
>                       cgroup_dbg("matched %s:%s\n", mntopt, controllers[i]);
> +
> +                     /* do not have duplicates in mount table */
> +                     duplicate = 0;
> +                     for  (j = 0; j < found_mnt; j++) {
> +                             if (strcmp(mntopt, cg_mount_table[j].name) == 
> 0) {
> +                                     duplicate = 1;
> +                                     break;
> +                             }
> +                     }
> +                     if (duplicate) {
> +                             cgroup_dbg("controller %s is already mounted on 
> %s\n",
> +                                     mntopt, cg_mount_table[j].path);
> +                             continue;

Is this an ignorable error? How does this work if the same controller
is mounted at two places?

> +                     }
> +
>                       strcpy(cg_mount_table[found_mnt].name, controllers[i]);
>                       strcpy(cg_mount_table[found_mnt].path, ent->mnt_dir);
>                       cgroup_dbg("Found cgroup option %s, count %d\n",
> 
> 
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables unlimited
> royalty-free distribution of the report engine for externally facing 
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________
> Libcg-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libcg-devel

-- 
        Balbir

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to