Re: Linux 2.4.33-rc1

Marcelo Tosatti
2006-06-18T13:37:11Z

> > Hi Willy, this worked.
>
> OK Fine. However, I don't understand. From you oops, it looks like
> dentry->d_inode suddenly gets NULL before calling this line :
>
> double_up(&dir->i_zombie, &dentry->d_inode->i_zombie);
>
> I'm wondering if the unlink(dir, dentry) above can produce this. If this
> is the case, the Vadim's fix is terribly broken. I also think that in
> vfs_link(), we can encounter the same problem that Marcelo had to fix,
> because double_down() is performed without prior checking that
> old_dentry->d_inode is valid.

Right, it should just check for the NULL case.

> Marcelo, do you have Vadim's email somewhere ? I think he should help us
> on this otherwise it would be better to revert his fix, as it has introduced
> lots of sensible changes in the error path.

The patch fixes a serious SMP race.

>
> > Grant.
>
> Thanks for the tests, Grant.
> Willy