[CRIU] [PATCH 3/7] mount: use add_to_string() in attach_option()

Stanislav Kinsburskiy skinsbursky at odin.com
Wed Dec 16 12:51:56 PST 2015



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?

>> +		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