Hello Junjiro,
On Wed, Sep 21, 2005 at 08:13:31PM +0900, [EMAIL PROTECTED] wrote:
>
> After experiencing many assertion fails, I have found a bug.
> unionfs has become pretty stable after fixing this bug.
> I am using unionfs with writable nfs branches and i have modified some
> other points.
>
>
> Junjiro Okajima
>
>
> --- unionfs-20050920-1539/inode.cO 2005-09-21 04:39:03.000000000 +0900
> +++ unionfs-20050920-1539/inode.c 2005-09-21 20:10:16.819341832 +0900
> @@ -41,7 +41,7 @@
> hidden_dentry = dtohd(dentry);
>
> /* check if whiteout exists in this branch, i.e. lookup .wh.foo first */
> - name = KMALLOC(dentry->d_name.len + sizeof(".wh"), GFP_UNIONFS);
> + name = KMALLOC(dentry->d_name.len + sizeof(".wh."), GFP_UNIONFS);
I can't believe this. I have been reading that special part of inode.c
several times during my 3 week debugging session, and did not notice the
"off by one", maybe because the last byte of "name" is overwritten with
a zero later. Also, I was searching more for uninitialized pointers or
race conditions.
Congratulations, it seems that you have just solved a LOT of the
unionfs-related problems I had in Knoppix (especially when overwriting
files multiple times, which was probably just a problem with whiteout
filename generation that was affected by the wrong kmalloc).
Some bugs are still pending, but at least now it looks like I can make a
new release this week.
Can I send you something for showing my appreciation of your quick bugfix?
Regards
-Klaus Knopper
_______________________________________________
unionfs mailing list
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs