New inode & dcache & transname implementation

Thomas Schoebel-Theuer (
Wed, 23 Apr 1997 19:40:00 +0200 (MET DST)

Hi all,

The newest alpha release (based on 2.0.27) of my rewrite of
some essential VFS thingies can be found at

An excerpt from the README there:


- the new dcache can hold "negative entries", i.e. names that are known
to *not* exist. This saves unneccessary lookups for non-existing names
and is in particular useful for the transname facility.

- /proc/<pid>/fd/ now contains symlinks with the full absolute path
to the inode. So you can see where the inode is.

- deleted files are kept in a two-level basket: if a used inode is
unlinked, the name foo is moved to .deleted-<number>.foo and is kept
in the dcache (not on disk!), so it remains accessible for
/proc/<pid>/fd/ (and for normal lookup of course).
Try the shell script in the appendix to see what it does!

- if the fs supports it (currently only ext2), deleted files go to
the second level basket as soon as the i_count becomes zero. The
second level basket keeps up to a constant number (currently 100)
of deleted files, but only as long as no umount() is done (e.g.
until the next reboot) and as long as sufficient space remains
on the disk. If the second level basket needs to be reduced
(e.g. because of space shortage), the files are freed in LRU order.

I hope that at least the last feature will be widely accepted by all
people typing rm * too fast ;-)

Please try the alpha code on test machines only (never on unrecoverable
data) and give me feedback.

Please answer by email *only* (I don't read the kernel list) and please
restrict your answer to questions dealing with the code.


-- Thomas