Re: [syzbot] general protection fault in list_lru_add

From: Linus Torvalds
Date: Wed Mar 23 2022 - 23:05:43 EST


On Wed, Mar 23, 2022 at 7:19 PM Muchun Song <songmuchun@xxxxxxxxxxxxx> wrote:
>
> After this commit, the rules of dentry allocations changed.
> The dentry should be allocated by kmem_cache_alloc_lru()

Yeah, I looked at that, but I can't find any way there could be other
allocations - not only are there strict rules how to initialize
everything, but the dentries are free'd using

kmem_cache_free(dentry_cache, dentry);

and as a result if they were allocated any other way I would expect
things would go south very quickly.

The only other thing I could come up with is some breakage in the
superblock lifetime so that &dentry->d_sb->s_dentry_lru would have
problems, but again, this is *such* core code and not some unusual
path, that I would be very very surprised if it wouldn't have
triggered other issues long long ago.

That's why I'd be more inclined to worry about the list_lru code being
somehow broken.

Linus