On Wed, Mar 27, 2024 at 12:01 PM Jan Kara <jack@xxxxxxx> wrote: > > On Sun 17-03-24 20:41:45, Amir Goldstein wrote: > > Instead of counting the number of connectors in an sb, we would like > > to count the number of watched objects per priority group. > > > > As a start, create an accessor fsnotify_sb_watched_objects() to > > s_fsnotify_connectors and rename the fsnotify_{get,put}_sb_connectors() > > helpers to fsnotify_{get,put}_sb_watchers() to better describes the > > counter. > > > > Increment the counter at the end of fsnotify_attach_connector_to_object() > > if connector was attached instead of decrementing it on race to connect. > > > > This is fine, because fsnotify_delete_sb() cannot be running in parallel > > to fsnotify_attach_connector_to_object() which requires a reference to > > a filesystem object. > > > > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > ... > > +static void fsnotify_put_inode_ref(struct inode *inode) > > +{ > > + iput(inode); > > + fsnotify_put_sb_watched_objects(inode->i_sb); > > +} > > This is a UAF issue. Will fix on commit. Otherwise the patch looks good. oops. Good catch! Thanks, Amir.