[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: fs/ext2/namei.c: dir link/unlink bug? [Re: mv changes dir timestamp
From: |
Eric W. Biederman |
Subject: |
Re: fs/ext2/namei.c: dir link/unlink bug? [Re: mv changes dir timestamp |
Date: |
30 Sep 2001 12:58:18 -0600 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.5 |
Jim Meyering <address@hidden> writes:
> Nilmoni Deb <address@hidden> 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 address@hidden
>
> 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