[Tux3] Dirty hack blockread() and dleaf_merge() fix

Daniel Phillips phillips at phunq.net
Sun Dec 28 20:13:53 PST 2008


On Sunday 28 December 2008 19:46, OGAWA Hirofumi wrote:
> Hi,
> 
> The free bitmap is called from fill_segs(). The page for free bitmap
> may be used recursively. We have to care this point.
> 
> lock_page(bitmap page (e.g. index == 3))
>   ->writepage(bitmap page)
>     tux3_get_block()
>       balloc() (allocate blocks for that bitmap page)
>         /* we are starting to find free block on bitmap */
> 	while (end of page)
>            blockread(bitmap page)
> 	     lock_page(bitmap page (index == 3))
> 
> Current blockread() have the above deadlock. This patchset is including
> the hack to avoid this. Later, we should revisit blockread() to fix
> properly.
> 
> Second one is dleaf_merge() fix. Now, it don't care about
> MAX_GROUP_ENTRIES at all. This fixes it.
> 
> 	static-http://userweb.kernel.org/~hirofumi/tux3/
> 
> Please review those.

Done.  A complete rewrite of dleaf_merge, saving two or three lines
from my original code :-)

OK, announcement time: with these changes, Hirofumi has got Tux3
running stable through multiple runs of the fsx-linux filesystem
exerciser, so this is a big day.  And that would be Hirofumi 'Hero'
Ogawa to me.

I will prepare a new patch, and a post to invite others to try
testing this code.  Next, when we have a basic atomic commit working
it will be about time to offer Tux3 up for review.

Regards,

Daniel

_______________________________________________
Tux3 mailing list
Tux3 at tux3.org
http://mailman.tux3.org/cgi-bin/mailman/listinfo/tux3



More information about the Tux3 mailing list