[Tux3] Dirty hack blockread() and dleaf_merge() fix
phillips at phunq.net
Sun Dec 28 20:13:53 PST 2008
On Sunday 28 December 2008 19:46, OGAWA Hirofumi wrote:
> 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)
> 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
> Second one is dleaf_merge() fix. Now, it don't care about
> MAX_GROUP_ENTRIES at all. This fixes it.
> 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.
Tux3 mailing list
Tux3 at tux3.org
More information about the Tux3