mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-31 14:25:49 +00:00
As Pavel proposed we can refine fanotify image objects squeezing common part in separate entry. Finally the objects are grouped as enum mark_type { INODE = 1; MOUNT = 2; } message fanotify_inode_mark_entry { required uint64 i_ino = 1; required fh_entry f_handle = 2; } message fanotify_mount_mark_entry { required uint32 mnt_id = 1; } message fanotify_mark_entry { required uint32 id = 1; required mark_type type = 2; required uint32 mflags = 3; required uint32 mask = 4; required uint32 ignored_mask = 5; required uint32 s_dev = 6; optional fanotify_inode_mark_entry ie = 7; optional fanotify_mount_mark_entry me = 8; } This required some tuning in fdinfo parsing and fsnotify code itself, but result looks good to me. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
55 lines
1.1 KiB
Protocol Buffer
55 lines
1.1 KiB
Protocol Buffer
import "fh.proto";
|
|
import "fown.proto";
|
|
|
|
message inotify_wd_entry {
|
|
required uint32 id = 1;
|
|
required uint64 i_ino = 2;
|
|
required uint32 mask = 3;
|
|
required uint32 ignored_mask = 4;
|
|
required uint32 s_dev = 5;
|
|
required uint32 wd = 6;
|
|
required fh_entry f_handle = 7;
|
|
}
|
|
|
|
message inotify_file_entry {
|
|
required uint32 id = 1;
|
|
required uint32 flags = 2;
|
|
required fown_entry fown = 4;
|
|
}
|
|
|
|
enum mark_type {
|
|
INODE = 1;
|
|
MOUNT = 2;
|
|
}
|
|
|
|
message fanotify_inode_mark_entry {
|
|
required uint64 i_ino = 1;
|
|
required fh_entry f_handle = 2;
|
|
}
|
|
|
|
message fanotify_mount_mark_entry {
|
|
required uint32 mnt_id = 1;
|
|
}
|
|
|
|
message fanotify_mark_entry {
|
|
required uint32 id = 1;
|
|
required mark_type type = 2;
|
|
|
|
required uint32 mflags = 3;
|
|
required uint32 mask = 4;
|
|
required uint32 ignored_mask = 5;
|
|
required uint32 s_dev = 6;
|
|
|
|
optional fanotify_inode_mark_entry ie = 7;
|
|
optional fanotify_mount_mark_entry me = 8;
|
|
}
|
|
|
|
message fanotify_file_entry {
|
|
required uint32 id = 1;
|
|
required uint32 flags = 2;
|
|
required fown_entry fown = 3;
|
|
|
|
required uint32 faflags = 4;
|
|
required uint32 evflags = 5;
|
|
}
|