]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
api.c: refactor cgroup_process_*_mnt()
authorKamalesh Babulal <kamalesh.babulal@oracle.com>
Sat, 26 Mar 2022 13:40:50 +0000 (19:10 +0530)
committerTom Hromatka <tom.hromatka@oracle.com>
Tue, 29 Mar 2022 21:37:58 +0000 (15:37 -0600)
Abstract appending new mount point to the cg_mount_table[] into new
function, reducing the duplication in both cgroup_process_v1_mnt()
and cgroup_process_v2_mnt().

Signed-off-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
TJH: Remove erroneous whitespace addition

src/api.c

index d6867ec768f84f0e06cc4118c5757a1649419d9b..5f802b98a3e195eadfa307daa89604c7daa7ff8c 100644 (file)
--- a/src/api.c
+++ b/src/api.c
@@ -1070,6 +1070,27 @@ int cg_add_duplicate_mount(struct cg_mount_table_s *item, const char *path)
        return 0;
 }
 
+static void cgroup_cg_mount_table_append(const char *name,
+                                        const char *mount_path,
+                                        enum cg_version_t version,
+                                        int *mnt_tbl_idx,
+                                        const char *mnt_opts)
+{
+       int i = *mnt_tbl_idx;
+
+       strncpy(cg_mount_table[i].name, name, FILENAME_MAX);
+       cg_mount_table[i].name[FILENAME_MAX-1] = '\0';
+
+       strncpy(cg_mount_table[i].mount.path, mount_path, FILENAME_MAX);
+       cg_mount_table[i].mount.path[FILENAME_MAX-1] = '\0';
+
+       cg_mount_table[i].version = version;
+       cg_mount_table[i].mount.next = NULL;
+       cgroup_dbg("Found cgroup option %s, count %d\n", mnt_opts, i);
+
+       (*mnt_tbl_idx)++;
+}
+
 /**
  * Process a cgroup v1 mount and add it to cg_mount_table if it's not a
  * duplicate.
@@ -1114,23 +1135,9 @@ STATIC int cgroup_process_v1_mnt(char *controllers[], struct mntent *ent,
                        continue;
                }
 
-               strncpy(cg_mount_table[*mnt_tbl_idx].name,
-                       controllers[i], FILENAME_MAX);
-
-               cg_mount_table[*mnt_tbl_idx].name[FILENAME_MAX-1] = '\0';
-
-               strncpy(cg_mount_table[*mnt_tbl_idx].mount.path,
-                       ent->mnt_dir, FILENAME_MAX);
-
-               cg_mount_table[*mnt_tbl_idx].mount.path[FILENAME_MAX-1] =
-                       '\0';
-
-               cg_mount_table[*mnt_tbl_idx].version = CGROUP_V1;
-               cg_mount_table[*mnt_tbl_idx].mount.next = NULL;
-               cgroup_dbg("Found cgroup option %s, count %d\n",
-                          ent->mnt_opts, *mnt_tbl_idx);
-
-               (*mnt_tbl_idx)++;
+               cgroup_cg_mount_table_append(controllers[i], ent->mnt_dir,
+                                            CGROUP_V1, mnt_tbl_idx,
+                                            ent->mnt_opts);
        }
 
        /*
@@ -1172,23 +1179,9 @@ STATIC int cgroup_process_v1_mnt(char *controllers[], struct mntent *ent,
                        goto out;
                }
 
-               strncpy(cg_mount_table[*mnt_tbl_idx].name,
-                       mntopt, FILENAME_MAX);
-
-               cg_mount_table[*mnt_tbl_idx].name[FILENAME_MAX-1] = '\0';
-
-               strncpy(cg_mount_table[*mnt_tbl_idx].mount.path,
-                       ent->mnt_dir, FILENAME_MAX);
-
-               cg_mount_table[*mnt_tbl_idx].mount.path[FILENAME_MAX-1] =
-                       '\0';
-
-               cg_mount_table[*mnt_tbl_idx].version = CGROUP_V1;
-               cg_mount_table[*mnt_tbl_idx].mount.next = NULL;
-               cgroup_dbg("Found cgroup option %s, count %d\n",
-                          ent->mnt_opts, *mnt_tbl_idx);
-
-               (*mnt_tbl_idx)++;
+               cgroup_cg_mount_table_append(mntopt, ent->mnt_dir,
+                                            CGROUP_V1, mnt_tbl_idx,
+                                            ent->mnt_opts);
        }
 
 out:
@@ -1266,23 +1259,9 @@ STATIC int cgroup_process_v2_mnt(struct mntent *ent, int *mnt_tbl_idx)
                }
 
                /* This controller is not in the mount table.  add it */
-               strncpy(cg_mount_table[*mnt_tbl_idx].name,
-                       controller, FILENAME_MAX);
-
-               cg_mount_table[*mnt_tbl_idx].name[FILENAME_MAX-1] = '\0';
-
-               strncpy(cg_mount_table[*mnt_tbl_idx].mount.path,
-                       ent->mnt_dir, FILENAME_MAX);
-
-               cg_mount_table[*mnt_tbl_idx].mount.path[FILENAME_MAX-1] =
-                       '\0';
-
-               cg_mount_table[*mnt_tbl_idx].version = CGROUP_V2;
-               cg_mount_table[*mnt_tbl_idx].mount.next = NULL;
-               cgroup_dbg("Found cgroup option %s, count %d\n",
-                          controller, *mnt_tbl_idx);
-
-               (*mnt_tbl_idx)++;
+               cgroup_cg_mount_table_append(controller, ent->mnt_dir,
+                                            CGROUP_V2, mnt_tbl_idx,
+                                            controller);
        } while ((controller = strtok_r(NULL, " ", &stok_buff)));
 
 out: