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.