Re: Duplicate '..' in /lib

Alexander Viro (viro@math.psu.edu)
Mon, 16 Jul 2001 01:38:40 -0400 (EDT)


On Mon, 16 Jul 2001, Albert D. Cahalan wrote:

> Adam writes:
>
> >> /lib
> >> 4 drwxr-xr-x 19 root root 4096 Jun 9 16:06 ..
> >> 4 -rw-rw-r-- 1 root root 27 Jun 9 15:55 ..
> >>
> >> How can I get rid of this? I'm on kernel 2.2.19, running on sparc-linux.
> >
> > first it is not a pair directories, but a directory and a file.
> >
> > second, are you sure both of the mare just ".." for example
>
> I don't think so! Look at the "4" on the left. If that is the
> inode number from "ls -lia /lib", his disk is seriously messed up.
> The inode number for "/lib/.." should be 2, and an inode may not
> be shared between a file and a directory.

Erm... It _can't_ be an inode number. Something is very fishy there.
a) names are different, otherwise stat() would give the same
results both times it had been called. It didn't.
b) actual inumbers are also different - see above for the reason
why.
c) it might be an effect of getdents() returning crap (i.e.
giving bogus inumbers which ls(1) trusts). However, I don't see any
obvious ways to get corrupted directory tricking getdents() into that
output.

Alex, could you do strace of that? It would clarify the situation.

-
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/