Re: [PATCH 03/11] vfs: Use dlock list for superblock's inode list

Kent Overstreet
2023-12-07T05:03:57Z

On Thu, Dec 07, 2023 at 03:59:10PM +1100, Dave Chinner wrote:
> On Thu, Dec 07, 2023 at 02:40:24AM +0000, Al Viro wrote:
> > On Wed, Dec 06, 2023 at 05:05:32PM +1100, Dave Chinner wrote:
> >
> > > @@ -303,6 +303,7 @@ static void destroy_unused_super(struct super_block *s)
> > > super_unlock_excl(s);
> > > list_lru_destroy(&s->s_dentry_lru);
> > > list_lru_destroy(&s->s_inode_lru);
> > > + free_dlock_list_heads(&s->s_inodes);
> > > security_sb_free(s);
> > > put_user_ns(s->s_user_ns);
> > > kfree(s->s_subtype);
> >
> > Umm... Who's going to do that on normal umount?
>
> Huh. So neither KASAN nor kmemleak has told me that s->s-inodes was
> being leaked. I'm guessing a rebase sometime in the past silently
> dropped a critical hunk from deactivate_locked_super() in the bit
> bucket, but as nothing since whenever that happened has failed or
> flagged a memory leak I didn't notice.
>
> Such great tools we have......

kmemleak has always seemed flakey to me (as one would expect, it's
difficult code to test). If we can ever get memory allocation profiling
merged - it won't be a direct replacement but it'll be more reliable.