Re: [Re: Inodes]

H. Peter Anvin
2001-05-14T22:49:47Z

Alexander Viro wrote:
>
> On Mon, 14 May 2001, H. Peter Anvin wrote:
>
> > Correct. At least at one time it used the offset of the directory entry
> > when that particular inode was last "seen" by the kernel... meaning that
> > when it finally dropped out of the inode cache, it would change inode
> > numbers. I thought that was a reasonable (by no means perfect, though)
> > solution to a very sticky problem.
>
> Unfortunately it wasn't a solution. Look: you open a file and rename it
> away. Now you want to create something in the old directory. Woops - can't
> use the old entry of our file, since we'll get icache conflict that way.
> So we get this lovely notion of reserved entries and there lies the
> madness. It gets especially nasty when you consider rmdir of something
> that used to be non-empty, but everything had been renamed away from it.
> And stayes open. Moreover, at every moment you need both the "original"
> location (inumber) and current one (for write_inode()). Better yet, you
> get to deal with opened files that are not renamed, but removed. Yes,
> all of that can be dealt with. The old driver didn't.
>

True enough.

--
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."