Messages in this thread |  | | Date | Mon, 14 May 2001 17:44:19 -0400 (EDT) | From | Alexander Viro <> | Subject | Re: [Re: Inodes] |
| |
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.
- 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/
|  |