Re: undelete?

Rogier Wolff (
Sat, 26 Jul 1997 13:51:03 +0200 (MET DST)

david parsons wrote:
> In article <>,
> Kurt Huwig <> wrote:
> >Hello!
> >In the FAQ, I just found "please wait".
> >
> >Is anyone working on an 'undelete'-feature for ext2 or better any
> >filesystem? I don't need 'rm' replacements, because I want to undelete
> >files deleted by samba.
> >
> >The easiest solution might by a fs on top of another fs that is fully
> >transparent, but replaces 'delete' by a move into a certain directory.
> >
> >I heard that there was a thread about ext2 deletion. What about really
> >deleting the stuff 60 seconds later? Often you realize your mistake just
> >in the moment of pressing 'enter'.
> That's not the way I'd do it; if you have a timed delete, you need to
> keep timers running, and that seems like it might be a less than optimal
> way to implement such a thing. I think the easiest way to implement
> undelete would be to set up a scheme for doing whiteout on directory
> entries; when you remove() (or unlink()?) a file, instead of killing
> the directory entry it will simply white that entry out, for reaping by
> a daemon at some later date (or recovery by undelete.) This way you
> don't muck with the fs semantics of ext2, but simply implement a few
> user-space daemons to do the proper bookkeeping on the filesystem.

About a year ago, I implemented the "undelete feature" as a move to
/.deleted. Unlink xyz calls get changed into a mv xyz /.deleted .
The rest is user-space. For example: reclaiming the disk space can
be done by a deamon that watches the .deleted directory. Any fancy
algorithms you want can be implemented there.

Implementing it myself did shut up the thread back then, but doesn't
prevent the thread to reappear month after month later....