diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-11-14 17:14:39 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-14 17:10:40 -0500 |
commit | 88d36a9949513419de3a506e7fca8b82d1dc972a (patch) | |
tree | ea91ab0a7da6b3549a0559677b8cd9937006a6e7 /kernel/taskstats.c | |
parent | 1e9f3d6f1c403dd2b6270f654b4747147aa2306f (diff) | |
download | lwn-88d36a9949513419de3a506e7fca8b82d1dc972a.tar.gz lwn-88d36a9949513419de3a506e7fca8b82d1dc972a.zip |
taskstats: use genl_register_family_with_ops()
This simplifies the code since there's no longer a
need to have error handling in the registration.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel/taskstats.c')
-rw-r--r-- | kernel/taskstats.c | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/kernel/taskstats.c b/kernel/taskstats.c index 9f4618eb51c8..609e77f68687 100644 --- a/kernel/taskstats.c +++ b/kernel/taskstats.c @@ -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; } /* |