[CRIU] [PATCH 10/17] fsnotify: Add fanotify restore
Pavel Emelyanov
xemul at parallels.com
Mon Dec 24 09:08:07 EST 2012
On 12/24/2012 06:02 PM, Cyrill Gorcunov wrote:
> On Mon, Dec 24, 2012 at 05:56:11PM +0400, Pavel Emelyanov wrote:
>> On 12/24/2012 05:50 PM, Cyrill Gorcunov wrote:
>>> On Mon, Dec 24, 2012 at 05:32:12PM +0400, Pavel Emelyanov wrote:
>>>> On 12/11/2012 01:34 AM, Cyrill Gorcunov wrote:
>>>>>
>>>>> The idea is the same as for inotify -- just open
>>>>> notification descriptor and hook paths on.
>>>>>
>>>>> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
>>>>> ---
>>>>> fsnotify.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
>>>>> 1 file changed, 89 insertions(+), 2 deletions(-)
>>>>>
>>>>> + /*
>>>>> + * Note we use OR'ed iwe->wd here, since for fanotify it
>>>>> + * provides additional flags for the mark.
>>>>> + */
>>>>> + flags |= iwe->wd;
>>>>
>>>> I don't understand this. Kernel denies putting any flags but known into
>>>> sys_fanotify_mark.
>>>
>>> wd consist of additional flags associated with mark, ie "mflags" field
>>
>> WHAT?! How did this happen, I have missed this from the set.
>
> This comes from parsing procfs
>
> entry.fsy.type = FSNOTIFY_TYPE__FANOTIFY;
> ret = sscanf(&str[13],
> "%lx sdev:%x "
> "mflags:%x mask:%x ignored_mask:%x "
> "fhandle-bytes:%x fhandle-type:%x "
> "f_handle: %n",
> &entry.fsy.i_ino, &entry.fsy.s_dev,
> --> &entry.fsy.wd, &entry.fsy.mask, &entry.fsy.ignored_mask,
:\ OK... Don't put _mask_ into _wd_ field. Add another one.
> &entry.fsy.f_handle->bytes, &entry.fsy.f_handle->type,
> &hoff);
>
> which is because
>
> commit e6dbcafb744ab94a94142a6e721e16330397fad8
> Author: Cyrill Gorcunov <gorcunov at openvz.org>
> Date: Mon Dec 17 16:05:16 2012 -0800
>
> fs, fanotify: add @mflags field to fanotify output
>
> The kernel keeps FAN_MARK_IGNORED_SURV_MODIFY bit separately from
> fsnotify_mark::mask|ignored_mask thus put it in @mflags (mark flags)
> field so the user-space reader will be able to detect if such bit were
> used on mark creation procedure.
>
> | pos: 0
> | flags: 04002
> | fanotify flags:10 event-flags:0
> | fanotify mnt_id:12 mflags:40 mask:38 ignored_mask:40000003
> | fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type:1 f_handle:69f90400c275b5b4
>
> Cyrill
> .
>
More information about the CRIU
mailing list