[CRIU] [PATCH] net/sysctl: remove excess type conversions for sysctl_entry.type
Pavel Emelyanov
xemul at virtuozzo.com
Thu May 19 07:02:33 PDT 2016
On 05/18/2016 02:05 PM, Pavel Tikhomirov wrote:
>
>
> On 05/17/2016 02:52 PM, Pavel Emelyanov wrote:
>> On 05/16/2016 05:32 PM, Pavel Tikhomirov wrote:
>>> use SYSCTL_TYPE__CTL_32 and SYSCTL_TYPE____CTL_STR from SysctlEntry enum
>>>
>>> Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
>>> ---
>>> criu/net.c | 29 +++++++++++++++--------------
>>> 1 file changed, 15 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/criu/net.c b/criu/net.c
>>> index 59c1161..a28ad80 100644
>>> --- a/criu/net.c
>>> +++ b/criu/net.c
>>> @@ -66,11 +66,12 @@ static bool sysctl_entries_equal(SysctlEntry *a, SysctlEntry *b)
>>> if (a->type != b->type)
>>> return false;
>>>
>>> - switch (CTL_TYPE(a->type)) {
>>> - case CTL_32:
>>> + switch (a->type) {
>>> + case SYSCTL_TYPE__CTL_32:
>>
>> Should SYSCTL_TYPE__CTL_32 == CTL_32?
>
> Here SYSCTL_TYPE__CTL_32 is enumeration constant and CTL_32 is
> preprocessor constant and they are both equal to 6 of course. But it
> seem to me that using enumeration constants when work with enumeration
> variable is a bit clearer.
So should they match or not? If yes, add BUILD_BUG_ONS-s
>>
>>> return a->has_iarg && b->has_iarg && a->iarg == b->iarg;
>>> - case __CTL_STR:
>>> + case SYSCTL_TYPE____CTL_STR:
>>
>> Any reason we need 4 underscores here?
>
> We have CTL_STR(len) - string with length and __CTL_STR for string
> without length. So I named the enumeration const in SysctlType similarly
> __CTL_STR as it do not save lenght. And protobuf adds SYSCTL_TYPE__
> prefix to all enum consts. These way I got SYSCTL_TYPE____CTL_STR with 4
> underscores, no other reason.
Please, drop extra underscores from pb enum.
>>
>>> return a->sarg && b->sarg && !strcmp(a->sarg, b->sarg);
>>> + default:;
>>> }
>>>
>>> return false;
>>> @@ -191,8 +192,8 @@ static int net_conf_op(char *tgt, SysctlEntry **conf, int n, int op, char *proto
>>>
>>> snprintf(path[i], MAX_CONF_OPT_PATH, CONF_OPT_PATH, proto, tgt, devconfs[i]);
>>> req[ri].name = path[i];
>>> - switch (CTL_TYPE(conf[i]->type)) {
>>> - case CTL_32:
>>> + switch (conf[i]->type) {
>>> + case SYSCTL_TYPE__CTL_32:
>>> req[ri].type = CTL_32;
>>>
>>> /* skip non-existing sysctl */
>>> @@ -201,7 +202,7 @@ static int net_conf_op(char *tgt, SysctlEntry **conf, int n, int op, char *proto
>>>
>>> req[ri].arg = &conf[i]->iarg;
>>> break;
>>> - case __CTL_STR:
>>> + case SYSCTL_TYPE____CTL_STR:
>>> req[ri].type = CTL_STR(MAX_STR_CONF_LEN);
>>> flags |= op == CTL_READ && !strcmp(devconfs[i], "stable_secret")
>>> ? CTL_FLAGS_READ_EIO_SKIP : 0;
>>> @@ -230,10 +231,10 @@ static int net_conf_op(char *tgt, SysctlEntry **conf, int n, int op, char *proto
>>> /* (un)mark (non-)existing sysctls in image */
>>> for (i = 0; i < ri; i++)
>>> if (req[i].flags & CTL_FLAGS_HAS) {
>>> - if (CTL_TYPE(rconf[i]->type) == CTL_32)
>>> + if (rconf[i]->type == SYSCTL_TYPE__CTL_32)
>>> rconf[i]->has_iarg = true;
>>> } else {
>>> - if (CTL_TYPE(rconf[i]->type) == __CTL_STR)
>>> + if (rconf[i]->type == SYSCTL_TYPE____CTL_STR)
>>> rconf[i]->sarg = NULL;
>>> }
>>> }
>>> @@ -380,9 +381,9 @@ static int dump_one_netdev(int type, struct ifinfomsg *ifi,
>>> sysctl_entry__init(&confs6[i]);
>>> netdev.conf6[i] = &confs6[i];
>>> if (strcmp(devconfs6[i], "stable_secret")) {
>>> - netdev.conf6[i]->type = CTL_32;
>>> + netdev.conf6[i]->type = SYSCTL_TYPE__CTL_32;
>>> } else {
>>> - netdev.conf6[i]->type = __CTL_STR;
>>> + netdev.conf6[i]->type = SYSCTL_TYPE____CTL_STR;
>>> netdev.conf6[i]->sarg = stable_secret;
>>> }
>>> }
>>> @@ -1179,11 +1180,11 @@ static int dump_netns_conf(struct cr_imgset *fds)
>>> netns.def_conf6[i] = &def_confs6[i];
>>> netns.all_conf6[i] = &all_confs6[i];
>>> if (strcmp(devconfs6[i], "stable_secret")) {
>>> - netns.def_conf6[i]->type = CTL_32;
>>> - netns.all_conf6[i]->type = CTL_32;
>>> + netns.def_conf6[i]->type = SYSCTL_TYPE__CTL_32;
>>> + netns.all_conf6[i]->type = SYSCTL_TYPE__CTL_32;
>>> } else {
>>> - netns.def_conf6[i]->type = __CTL_STR;
>>> - netns.all_conf6[i]->type = __CTL_STR;
>>> + netns.def_conf6[i]->type = SYSCTL_TYPE____CTL_STR;
>>> + netns.all_conf6[i]->type = SYSCTL_TYPE____CTL_STR;
>>> netns.def_conf6[i]->sarg = def_stable_secret;
>>> netns.all_conf6[i]->sarg = all_stable_secret;
>>> }
>>>
>>
>
More information about the CRIU
mailing list