[CRIU] Re: [PATCH v2 04/11] dump: stat fd by fstatat()

Kinsbursky Stanislav skinsbursky at openvz.org
Mon Mar 5 11:03:08 EST 2012


05.03.2012 19:39, Pavel Emelyanov пишет:
> On 03/05/2012 04:38 PM, Kinsbursky Stanislav wrote:
>> This is a cleanup patch - it allows to get stats for file descriptor without
>> opening.
> But you still open it anyway. Why should I apply this one?

This open will be moved to functions which requires this descriptor later in the 
series.

>> Signed-off-by: Stanislav Kinsbursky<skinsbursky at openvz.org>
>>
>> ---
>>   cr-dump.c |   17 +++++++++--------
>>   1 files changed, 9 insertions(+), 8 deletions(-)
>>
>> diff --git a/cr-dump.c b/cr-dump.c
>> index 4aa9089..3a441f6 100644
>> --- a/cr-dump.c
>> +++ b/cr-dump.c
>> @@ -327,6 +327,15 @@ static int dump_one_fd(pid_t pid, int pid_fd_dir, char *d_name, struct cr_fdset
>>   	struct fd_parms p;
>>   	int lfd;
>>
>> +	err = fstatat(pid_fd_dir, d_name,&fd_stat, 0);
>> +	if (err<  0) {
>> +		pr_perror("Failed to fstatat %d/%s", pid_fd_dir, d_name);
>> +		return -1;
>> +	}
>> +
>> +	if (read_fd_params(pid, d_name,&fd_stat,&p))
>> +		return -1;
>> +
>>   	lfd = openat(pid_fd_dir, d_name, O_RDONLY);
>>   	if (lfd<  0) {
>>   		err = try_dump_socket(pid, atoi(d_name), cr_fdset, sk_queue);
>> @@ -337,14 +346,6 @@ static int dump_one_fd(pid_t pid, int pid_fd_dir, char *d_name, struct cr_fdset
>>   		return -1;
>>   	}
>>
>> -	if (fstat(lfd,&fd_stat)<  0) {
>> -		pr_perror("Can't get stat on %ld", p.fd_name);
>> -		goto out_close;
>> -	}
>> -
>> -	if (read_fd_params(pid, d_name,&fd_stat,&p))
>> -		return -1;
>> -
>>   	if (S_ISCHR(fd_stat.st_mode)&&
>>   	(major(fd_stat.st_rdev) == TTY_MAJOR ||
>>   	     major(fd_stat.st_rdev) == UNIX98_PTY_SLAVE_MAJOR)) {
>>


-- 
Best regards,
Stanislav Kinsbursky




More information about the CRIU mailing list