Re: [Yaffs] [PATCH] yaffs: fix softlockup cauesed by inode d…

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: yaffs
Subject: Re: [Yaffs] [PATCH] yaffs: fix softlockup cauesed by inode deleted when scanning s_inodes list
On Wednesday 31 August 2011 19:53:07 JiSheng Zhang wrote:
> Hi List,
>
> I can only send email using webui now. so the patch is attached. I can
> resend the patch in email body if necessary later.
>
> The bug can only be triggered under SMP and heavy stress test.
>
> What happen is that the list_for_each_entry() loop in yaffs flush inodes
> routine can race with inodes deleting, so the inode can go away before
> list_for_each_entry() get the next node. This leads to a endless loop
> which will cause softlockup. We fix the problem by keeping reference to
> it and putting the reference only after we have safely resumed the scan
> of the inode list.
>
> Since __iget() and the inode lock are not exported, yaffs can not be
> selected as M after this change
>
> Signed-off-by: Jisheng Zhang <>


Thank you very much for that patch.

I shall try to implement it differently as I would like to preserve module
building for test purposes.

Can you please tell me more about your testing environment? I would like to
try replicate those tests here.

Thanks

Charles