• L
    fsnotify: use reference counting for groups · 23e964c2
    Lino Sanfilippo 提交于
    Get a group ref for each mark that is added to the groups list and release that
    ref when the mark is freed in fsnotify_put_mark().
    We also use get a group reference for duplicated marks and for private event
    data.
    Now we dont free a group any more when the number of marks becomes 0 but when
    the groups ref count does. Since this will only happen when all marks are removed
    from a groups mark list, we dont have to set the groups number of marks to 1 at
    group creation.
    
    Beside clearing all marks in fsnotify_destroy_group() we do also flush the
    groups event queue. This is since events may hold references to groups (due to
    private event data) and we have to put those references first before we get a
    chance to put the final ref, which will result in a call to
    fsnotify_final_destroy_group().
    Signed-off-by: NLino Sanfilippo <LinoSanfilippo@gmx.de>
    Signed-off-by: NEric Paris <eparis@redhat.com>
    23e964c2
mark.c 10.8 KB