|
@@ -673,17 +673,18 @@ err:
|
|
|
nlmsg_free(rep_skb);
|
|
|
}
|
|
|
|
|
|
-static struct genl_ops taskstats_ops = {
|
|
|
- .cmd = TASKSTATS_CMD_GET,
|
|
|
- .doit = taskstats_user_cmd,
|
|
|
- .policy = taskstats_cmd_get_policy,
|
|
|
- .flags = GENL_ADMIN_PERM,
|
|
|
-};
|
|
|
-
|
|
|
-static struct genl_ops cgroupstats_ops = {
|
|
|
- .cmd = CGROUPSTATS_CMD_GET,
|
|
|
- .doit = cgroupstats_user_cmd,
|
|
|
- .policy = cgroupstats_cmd_get_policy,
|
|
|
+static struct genl_ops taskstats_ops[] = {
|
|
|
+ {
|
|
|
+ .cmd = TASKSTATS_CMD_GET,
|
|
|
+ .doit = taskstats_user_cmd,
|
|
|
+ .policy = taskstats_cmd_get_policy,
|
|
|
+ .flags = GENL_ADMIN_PERM,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .cmd = CGROUPSTATS_CMD_GET,
|
|
|
+ .doit = cgroupstats_user_cmd,
|
|
|
+ .policy = cgroupstats_cmd_get_policy,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
/* Needed early in initialization */
|
|
@@ -702,26 +703,14 @@ static int __init taskstats_init(void)
|
|
|
{
|
|
|
int rc;
|
|
|
|
|
|
- rc = genl_register_family(&family);
|
|
|
+ rc = genl_register_family_with_ops(&family, taskstats_ops,
|
|
|
+ ARRAY_SIZE(taskstats_ops));
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
|
|
|
- rc = genl_register_ops(&family, &taskstats_ops);
|
|
|
- if (rc < 0)
|
|
|
- goto err;
|
|
|
-
|
|
|
- rc = genl_register_ops(&family, &cgroupstats_ops);
|
|
|
- if (rc < 0)
|
|
|
- goto err_cgroup_ops;
|
|
|
-
|
|
|
family_registered = 1;
|
|
|
pr_info("registered taskstats version %d\n", TASKSTATS_GENL_VERSION);
|
|
|
return 0;
|
|
|
-err_cgroup_ops:
|
|
|
- genl_unregister_ops(&family, &taskstats_ops);
|
|
|
-err:
|
|
|
- genl_unregister_family(&family);
|
|
|
- return rc;
|
|
|
}
|
|
|
|
|
|
/*
|