Re: 2.6.19-rc2-mm1

Jiri Kosina
2006-10-18T22:41:49Z

On Wed, 18 Oct 2006, Andrew Morton wrote:

> > The inode->i_mutex should be held every time when calling
> > i_size_write(), and the function contains WARN_ON() for that
> > condition. page_symlink(), however, does not lock i_mutex. It is
> > perfectly OK, as the i_mutex for the directory is held at the time
> > page_symlink() is running, so noone is able to change i_size during
> > race condition. However, i_size_write() spits out the warning without
> > this patch.
> I suspect it isn't necessary because the symlink's inode hasn't been wired
> up into the directory tree yet and no other thread can find it and do
> things to it.

I completely agree (see my comments to the patch in previous mail).
However, the warning emitted by i_size_write() should really go away. I
can see the following possibilities:

- lock the i_mutex, even though it's for sure not necessary. Not nice.
- remove the warning from i_size_write(). Not nice either, we want to be
warned about other calls that are not correct
- make the warning in i_size_write() conditional on inode->i_dentry not
being NULL (?)

Thanks,

--
Jiri Kosina