[CRIU] Re: [PATCH 14/16] dump: hide cwd and exe open

Kinsbursky Stanislav skinsbursky at openvz.org
Fri Mar 2 05:30:30 EST 2012


02.03.2012 11:07, Pavel Emelyanov пишет:
> On 03/01/2012 09:57 PM, Kinsbursky Stanislav wrote:
>>
>> Signed-off-by: Stanislav Kinsbursky<skinsbursky at openvz.org>
> Всё, стоп. Начиная от патча 6 изменения уже нетривиальные, а комментарии
> "hide x into y". Это, прошу прощения, говно, а не комментарии. На *мой*
> *вкус* так нельзя. Плюс изменения завязаны частично на 6й патч.
>
> До 6-го я по-ack-ал, можно комитить. Остальное -- просьба переделать.


Будет зделано, товарищ архитектор! :D
Не, кроме шуток. Эту вашу фишку с openat я не прочухал.

И да, дядя Павел: opanat - это не вкусовщина, а резонный довод.
А вот то, как этот код был написал - это уже вкусовщина (на мой вкус, тоже прощу 
прощения, но - говно).


>> ---
>>   cr-dump.c |   29 +++++++++++++++--------------
>>   1 files changed, 15 insertions(+), 14 deletions(-)
>>
>> diff --git a/cr-dump.c b/cr-dump.c
>> index 91fba5f..299df6f 100644
>> --- a/cr-dump.c
>> +++ b/cr-dump.c
>> @@ -155,7 +155,17 @@ static int dump_one_reg_file(struct fd_parms *p, struct cr_fdset *cr_fdset)
>>   	int ret;
>>   	int lfd;
>>
>> -	snprintf(fd_str, sizeof(fd_str), "/proc/%d/fd/%ld", p->pid, p->fd_name);
>> +	switch ((unsigned long)p->fd_name) {
>> +		case FDINFO_CWD:
>> +			snprintf(fd_str, sizeof(fd_str), "/proc/%d/cwd", p->pid);
>> +			break;
>> +		case FDINFO_EXE:
>> +			snprintf(fd_str, sizeof(fd_str), "/proc/%d/exe", p->pid);
>> +			break;
>> +		default:
>> +			snprintf(fd_str, sizeof(fd_str), "/proc/%d/fd/%ld", p->pid, p->fd_name);
>> +			break;
>> +	}
>>   	lfd = open(fd_str, O_RDONLY);
>>   	if (lfd<  0) {
>>   		pr_perror("Failed to open regular file '%s'\n", fd_str);
>> @@ -175,32 +185,23 @@ static int dump_task_special_files(pid_t pid, struct cr_fdset *cr_fdset)
>>   	params = (struct fd_parms) {
>>   		.fd_name	= FDINFO_CWD,
>>   		.id		= FD_ID_INVALID,
>> -		.pid		= FD_PID_INVALID,
>> +		.pid		= pid,
>>   		.type		= FDINFO_FD,
>>   	};
>>
>> -	fd = open_proc(pid, "cwd");
>> -	if (fd<  0)
>> -		return -1;
>> -	ret = dump_one_reg_file_fd(&params, fd, cr_fdset);
>> +	ret = dump_one_reg_file(&params, cr_fdset);
>>   	if (ret)
>>   		return ret;
>> -	close(fd);
>>
>>   	/* Dump /proc/pid/exe */
>>   	params = (struct fd_parms) {
>>   		.fd_name	= FDINFO_EXE,
>>   		.id		= FD_ID_INVALID,
>> -		.pid		= FD_PID_INVALID,
>> +		.pid		= pid,
>>   		.type		= FDINFO_FD,
>>   	};
>>
>> -	fd = open_proc(pid, "exe");
>> -	if (fd<  0)
>> -		return -1;
>> -	ret = dump_one_reg_file_fd(&params, fd, cr_fdset);
>> -	close(fd);
>> -
>> +	ret = dump_one_reg_file(&params, cr_fdset);
>>   	return ret;
>>   }
>>
>>


-- 
Best regards,
Stanislav Kinsbursky




More information about the CRIU mailing list