Re: Linux 2.4.33-rc1

Willy Tarreau
2006-06-21T04:11:34Z

Hi Grant,

On Wed, Jun 21, 2006 at 11:09:15AM +1000, Grant Coady wrote:

> >What puzzles me is how are we supposed to up(&nd.dentry->d_inode->i_sem) if
> >dentry->d_inode can become NULL ? simply by keeping a copy of it ? I thought
> >that the down() protected the whole thing, but may be that's stupid anyway.
> >I've been running rc1 without this patch for a few hours and during kernel
> >compiles without a problem, so I'm not sure about what to think about the
> >other changes which were apparently harmless too :-/
>
> So what's the final fixup? Last two patches don't seem to cause the
> problems previously reported by me. They don't play together though,
> so I'll add my general sense of confusion to this issue ;)

:-)
Marcelo's patch applies to sys_unlink(). It prevents sys_unlink() from
oopsing while releasing the inode's semaphore after vfs_unlink() has
nullified the inode pointer.

Mine did nearly the same within vfs_unlink(), where you got your original
oopses.

> Should I run the thing (which patch?) and compile a hundred kernels
> or something to see what (if anything) breaks. Shortest day of year
> here, I don't mind running the test box as part of room heating :o)

If you want to heat your room, you should effectively apply both
patches, then run a hundred kernel compiles. Removing the "-pipe"
option to gcc would help a lot since it will have to create temp files.

> Thanks,
> Grant.

Thanks for your time,
Willy