[prev in list] [next in list] [prev in thread] [next in thread] 

List:       yaffs
Subject:    Re: [Yaffs] [PATCH] yaffs: fix softlockup cauesed by inode deleted
From:       Charles Manning <manningc2 () actrix ! gen ! nz>
Date:       2011-08-31 21:12:48
Message-ID: 201109010912.48923.manningc2 () actrix ! gen ! nz
[Download RAW message or body]

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 <jszhang3@gmail.com>

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic