[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(¶ms, fd, cr_fdset);
>> + ret = dump_one_reg_file(¶ms, 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(¶ms, fd, cr_fdset);
>> - close(fd);
>> -
>> + ret = dump_one_reg_file(¶ms, cr_fdset);
>> return ret;
>> }
>>
>>
--
Best regards,
Stanislav Kinsbursky
More information about the CRIU
mailing list