[CRIU] [PATCH 05/22] protobuf: fsnotify -- Add fanotify entries

Cyrill Gorcunov gorcunov at openvz.org
Tue Jan 15 09:42:44 EST 2013


On Tue, Jan 15, 2013 at 06:34:17PM +0400, Pavel Emelyanov wrote:
> On 01/15/2013 06:22 PM, Cyrill Gorcunov wrote:
> > On Tue, Jan 15, 2013 at 06:14:07PM +0400, Pavel Emelyanov wrote:
> >> On 01/14/2013 08:47 PM, Cyrill Gorcunov wrote:
> >>>
> >>> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
> >>> ---
> >>>  protobuf/fsnotify.proto | 28 ++++++++++++++++++++++++++++
> >>>  1 file changed, 28 insertions(+)
> >>>
> >>
> >>
> >> I'm ready to merge the code. One question:
> >>
> >>> +message fanotify_mark_entry {
> >>> +	required uint32		id		= 1;
> >>> +	required mark_type	type		= 2;
> >>> +
> >>> +	required uint64		i_ino		= 3;
> >>> +	required uint32		s_dev		= 4;
> >>> +	required uint32		mflags		= 5;
> >>> +	required uint32		mask		= 6;
> >>> +	required uint32		ignored_mask	= 7;
> >>> +
> >>> +	optional uint32		mnt_id		= 8;
> >>> +	optional fh_entry	f_handle	= 9;
> >>> +}
> >>
> >> For what I see from patch 20 (proc parsing) if mark type is
> >> INODE, then all fields but mnt_id are in use. When mark type
> >> is MOUNT, then all fields but i_ino, s_dev and f_handle are
> >> in use. Maybe it's better to change this object to have
> >> i_ino, s_dev and f_handle to be optional as well? Like below
> >>
> >> +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;
> >> +
> >> +	optional uint64		i_ino		= 6;
> >> +	optional uint32		s_dev		= 7;
> >> +	optional fh_entry	f_handle	= 8;
> >> +	optional uint32		mnt_id		= 9;
> >> +}
> > 
> > Optional entries bloat the code and the image itself. For every
> > optional field there will be "has_" mark which will be stored
> > on image. So I thoght it doesn't worth it. But if you still
> > prefer optionals I can update, sure (but note that I'll have
> > to add code which will set has_... = true and such into
> > codebase).
> 
> Let's then do it like
> 
> message fanotify_inode_mark_entry {
> 	required uint64		i_ino		= 1;
> 	required uint32		s_dev		= 2;
> 	required fh_entry	f_handle	= 3;
> }
> 
> 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;
> 
> 	optional fanotify_inode_mark_entry ie	= 6;
> 	optional uint32		mnt_id		= 7;
> }
> 
> ?
> 
> And in the "what's bad with v1 images" on wiki we put a
> note, that it'd be great to merge pieces of inotify and
> fanotify entries and do it in v2 images.

Yup, sure. This will be even better.

> Anyway. I merge the whole set now, you send me a patch that
> brings image into more consistent form. Plus patches with
> code deduplication we discussed before are welcome.

OK, sure. Thanks!


More information about the CRIU mailing list