[CRIU] [PATCH 3/7] mount: use add_to_string() in attach_option()
Pavel Emelyanov
xemul at parallels.com
Thu Dec 17 02:14:16 PST 2015
On 12/16/2015 11:51 PM, Stanislav Kinsburskiy wrote:
>
>
> 16.12.2015 18:45, Pavel Emelyanov пишет:
>> On 12/16/2015 06:33 PM, Stanislav Kinsburskiy wrote:
>>> Signed-off-by: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
>>> ---
>>> mount.c | 23 +++++------------------
>>> 1 file changed, 5 insertions(+), 18 deletions(-)
>>>
>>> diff --git a/mount.c b/mount.c
>>> index 0c3192a..bcb8a77 100644
>>> --- a/mount.c
>>> +++ b/mount.c
>>> @@ -1163,24 +1163,11 @@ out:
>>>
>>> static int attach_option(struct mount_info *pm, char *opt)
>>> {
>>> - char *buf;
>>> - int len, olen;
>>> -
>>> - len = strlen(pm->options);
>>> - olen = strlen(opt);
>>> - buf = xrealloc(pm->options, len + olen + 2);
>>> - if (buf == NULL)
>>> - return -1;
>>> -
>>> - if (len && buf[len - 1] != ',') {
>>> - buf[len] = ',';
>>> - len++;
>>> - }
>>> -
>>> - memcpy(buf + len, opt, olen + 1);
>>> - pm->options = buf;
>>> -
>>> - return 0;
>>> + if (pm->options[strlen(pm->options)-1] == ',')
>> Isn't it faster to check for pm->options[0] != '\0'?
>>
>
> This check for "," at the end was strange. I don't really understand,
> where it comes from.
> I though, that the intention is to not duplicate comma when adding
> another option.
> No?
Well, the intention was not to put comma in front of the very
first option :) Like this
1st option attach : str += option
>=2nd option attach : str += ',' + option
If we always do str += ',' + option, then the string would look like
,opt1,opt2,opt3 instead or opt1,opt2,opt3
>>> + pm->options = add_to_string(pm->options, "%s", opt);
>>> + else
>>> + pm->options = add_to_string(pm->options, ",%s", opt);
>>> + return pm->options ? 0 : -1;
>>> }
>>>
>>> /* Is it mounted w or w/o the newinstance option */
>>>
>>> _______________________________________________
>>> CRIU mailing list
>>> CRIU at openvz.org
>>> https://lists.openvz.org/mailman/listinfo/criu
>>> .
>>>
>
> .
>
More information about the CRIU
mailing list