On Thu 05-04-18 16:18:07, Amir Goldstein wrote: > inode_mark and vfsmount_mark arguments are passed to handle_event() > operation as function arguments as well as on iter_info struct. > The difference is that iter_info struct may contain marks that should > not be handled and are represented as NULL arguments to inode_mark or > vfsmount_mark. > > Instead of passing the inode_mark and vfsmount_mark arguments, add > a type_mask member to iter_info struct to indicate which marks should > be handled, versus marks that should only be kept alive during user > wait. > > This change is going to be used for passing more mark types > with handle_event() (i.e. super block marks). > > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> Again only nit here: > @@ -212,6 +210,35 @@ enum fsnotify_obj_type { > #define FSNOTIFY_OBJ_TYPE_VFSMOUNT_FL (1U << FSNOTIFY_OBJ_TYPE_VFSMOUNT) > #define FSNOTIFY_OBJ_ALL_TYPES_MASK ((1U << FSNOTIFY_OBJ_TYPE_MAX) - 1) > > +struct fsnotify_iter_info { > + struct fsnotify_mark *inode_mark; > + struct fsnotify_mark *vfsmount_mark; > + unsigned int type_mask; > + int srcu_idx; > +}; I'd rename 'type_mask' to something more expressing the fact that these are marks we currently report to - 'report_mask'? Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR