2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-31 14:25:49 +00:00
Files
criu/protobuf/fsnotify.proto
Cyrill Gorcunov eb8f8c12cd fsnotify: fanotify -- Group objects in image
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>
2013-01-15 23:17:57 +04:00

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;
}