On Thu 05-04-18 16:18:06, Amir Goldstein wrote: > An fsnotify_mark_connector is referencing a single type of object > (either inode or vfsmount). Instead of storing a type mask in > connector->flags, store a single type id in connector->type to > identify the type of object. > > When a connector object is detached from the object, its type is set > to FSNOTIFY_OBJ_TYPE_DETACHED and this object is not going to be > reused. > > The function fsnotify_clear_marks_by_group() is the only place where > type mask was used, so use type flags instead of type id to this > function. > > This change is going to be more convenient when adding a new object > type (super block). > > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> Just one nit below: > diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h > index 759ba9113ec4..9c690eb692a2 100644 > --- a/include/linux/fsnotify_backend.h > +++ b/include/linux/fsnotify_backend.h > @@ -201,6 +201,17 @@ struct fsnotify_group { > #define FSNOTIFY_EVENT_PATH 1 > #define FSNOTIFY_EVENT_INODE 2 > > +enum fsnotify_obj_type { > + FSNOTIFY_OBJ_TYPE_INODE, > + FSNOTIFY_OBJ_TYPE_VFSMOUNT, > + FSNOTIFY_OBJ_TYPE_MAX, This would be better named FSNOTIFY_OBJ_TYPE_COUNT. _MAX suffix suggests this is still a valid type. Or do you indeed want to treat TYPE_DETACHED as a regular type? Honza > + FSNOTIFY_OBJ_TYPE_DETACHED = FSNOTIFY_OBJ_TYPE_MAX > +}; -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR