Re: fs/ext2/namei.c: dir link/unlink bug? [Re: mv changes dir timestamp

From: Eric W. Biederman (ebiederm@xmission.com)
Date: Sun Sep 30 2001 - 13:58:18 EST


Jim Meyering <jim@meyering.net> writes:

> Nilmoni Deb <ndeb@ece.cmu.edu> wrote:
> > When I move a directory its time stamp gets changed.
> > I am using mv version 4.1 (with mandrake-8.1).
>
> Thanks a lot for reporting that!
> This appears to be a bug not in GNU mv, nor even in GNU libc, but
> rather in the underlying implementation in the kernel ext2 file system
> support. The offending change seems to have come in with a rewrite
> of fs/ext2/namei.c that happened sometime between 2.4.4 and 2.4.9.
>
> That file begins with this new comment:
>
> * Rewrite to pagecache. Almost all code had been changed, so blame me
> * if the things go wrong. Please, send bug reports to viro@math.psu.edu
>
> This demonstrates that the problem affects ext2, but not tmpfs
> using a 2.4.10 kernel (notice that the timestamp doesn't change
> in /t, but does in the ext2 /tmp):

This actually looks like a fix. Ext2 keeps a directory entry named
.. in the directory so it knows what the parent directory is.
So to rename a directory besides it must unlink(..) and the link(..) inside
the directory being moved, at least logically. In the case you gave
as the parent directory didn't change it could be optimized out, but
it probably isn't worth it.

I know this is different but why is this a problem?

Eric

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Sep 30 2001 - 21:01:14 EST