[CRIU] [PATCH v4 03/17] regular files: protobuf "unreachable" field introduced

Pavel Emelyanov xemul at virtuozzo.com
Tue Jun 7 05:24:19 PDT 2016


On 06/06/2016 03:40 PM, Stanislav Kinsburskiy wrote:
> 
> 
> 06.06.2016 14:00, Pavel Emelyanov пишет:
>> On 06/02/2016 03:03 PM, Stanislav Kinsburskiy wrote:
>>>
>>> 02.06.2016 13:09, Pavel Emelyanov пишет:
>>>> On 05/20/2016 02:37 PM, Stanislav Kinsburskiy wrote:
>>>>> Will be used to determine whether this file have to be created prior to  open
>>>>> on restore.
>>>>>
>>>>> Signed-off-by: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
>>>>> ---
>>>>>    criu/files-reg.c     |   10 ++++++++++
>>>>>    images/regfile.proto |    1 +
>>>>>    2 files changed, 11 insertions(+)
>>>>>
>>>>> diff --git a/criu/files-reg.c b/criu/files-reg.c
>>>>> index 73b2908..e3da972 100644
>>>>> --- a/criu/files-reg.c
>>>>> +++ b/criu/files-reg.c
>>>>> @@ -1101,6 +1101,13 @@ static bool should_check_size(int flags)
>>>>>    	return true;
>>>>>    }
>>>>>    
>>>>> +static bool path_is_unreachable(struct fd_link *link, const struct fd_parms *parms)
>>>>> +{
>>>>> +	if (parms->fs_type == NFS_SUPER_MAGIC)
>>>>> +		return true;
>>>>> +	return false;
>>>>> +}
>>>>> +
>>>>>    int dump_one_reg_file(int lfd, u32 id, const struct fd_parms *p)
>>>>>    {
>>>>>    	struct fd_link _link, *link;
>>>>> @@ -1168,6 +1175,9 @@ ext:
>>>>>    	rfe.has_mode = true;
>>>>>    	rfe.mode = p->stat.st_mode;
>>>>>    
>>>>> +	rfe.has_unreachable	= true;
>>>>> +	rfe.unreachable		= path_is_unreachable(link, p);
>>>> Did you try to create remap entry for such files?
>>>>
>>> No, I didn't.
>>> The reason is "unreachable" tag can be assigned to any file, including
>>> remapped ones. IOW, it's another level of abstraction.
>> Disagree. How would you assign "unreachable" to dead-pid remap?
> 
> Ok, not to _exactly_ any "remap" file.
> But file can be only "unreachable", or both "unreachable" and 
> "unlinked", for example.
> The alternative could be one more "remap" type, but then some file will 
> have multiple remap tags.

I don't get why. If you have "just file" on NFS, it'll have one remap
entry -- remap to SFS. If you have ghost file on NFS, then it will have
a remap entry of ghost type, nothing more.

-- Pavel


More information about the CRIU mailing list