mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-20 16:51:37 +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>
54 lines
1.1 KiB
Protocol Buffer
54 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;
|
|
}
|