[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