Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Sep 2000 20:54:34 -0500
From:      Jerry Dunham <dunham@dunham.org>
To:        Greg Lehey <grog@lemis.com>
Cc:        Harry Woodward-Clarke <Harry.Woodward-Clarke@S1.com>, freebsd-questions@freebsd.org, Jon Hamilton <hamilton@pobox.com>
Subject:   Re: Advanced File System on FreeBSD
Message-ID:  <20000916205434.D27592@rider.dunham.org>
In-Reply-To: <20000915113737.M71517@wantadilla.lemis.com>; from Greg Lehey on Fri, Sep 15, 2000 at 11:37:37AM %2B0930
References:  <39C16654.196B0622@S1.com> <20000915013028.04F061EF@woodstock.monkey.net> <20000915113737.M71517@wantadilla.lemis.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 15 September 2000 at 11:37:37 +0930, Greg Lehey wrote:
>
> On Thursday, 14 September 2000 at 20:30:27 -0500, Jon Hamilton wrote:
> > In message <39C16654.196B0622@S1.com>, Harry Woodward-Clarke wrote:
> >> Jerry Dunham wrote:
> >>>
> >>> That "undelete" feature sure would be nice.  Some of us stupid people need
> >>> it far too often.  It's the one thing I REALLY liked better about the file
> >>> systems used by Microsoft and Atari.
> >>
> >> just an idea, it would be possible to 'alias' "rm" to be "mv" (it would
> >> need more than that, but that would be the gist of it), to then move the
> >> file(s) to some area which you could automagically 'clean up' via a
> >> cron-job (say once a week?)
> >>
> >> You could even write a script to do the 'rm', and pass it the parameters
> >> for 'rm', and perhaps add an extra to say "yes I really want this
> >> deleted, not just stuffed off to one side somewhere".
> >
> > There are several problems with an approach like that, not all of which
> > are necessarily obvious at first thought.
> >
> > First, it can be problematic where you put the "deleted" files.
> > Because of namespace colissions, you need to either keep a database
> > of files -> filenames, or duplicate much of your filesystem tree,
> > which can be kind of hard on inode usage.  There are also
> > ambiguities with directory permissions, if you allow the user to
> > navigate into the "deleted" tree (permissions may change on a
> > directory in the original tree, and you really should mirror those
> > changes into the "deleted" tree too).
> 
> There are alternatives.  You could find the "wastebasked" just like
> the way you find the root directory of the file system (which doesn't
> have a name until you mount it somewhere).  The root is always inode
> 2, at least on all UNIX and BSD systems; it's possible Linux does this
> differently, though the Linux system to which I have access appears to
> do the same as UNIX.  My recollection is that inodes 0 and 1 are
> magic, but I don't recall which kind of magic.  But we could make
> inode 3 magic as well, and make it the wastebasket.  I'm sure it would
> be possible to maintain a list of deleted files, their sizes and some
> tuning information (how much do you want to keep, when do you remove
> stuff even if you haven't fulfilled your quota, etc.) in this hidden
> area.

I know nothing about how the file system works, yet that makes amazingly
good sense to me.

> > What happens if you have:
> >
> > /a/b/c and /a/b/d hard linked to each other, then you delete and
> > undelete /a/b/c?  You get the contents back, but lost the benefit of
> > the hard link, and when you change /a/b/d and /a/b/c doesn't change,
> > you get a nasty surprise.
> 
> No, you'd have to remember that sort of thing.  It's not difficult.
> 
> > How do you deal with users who have disk quotas?  When they delete that
> > giant email spam they got and it continues to suck up their quota in
> > a "helpful" deletion area, they become unhappy.
> 
> That's a better question.  One approach would be to allow individual
> users to decide whether they want to use the undelete facility or not.

At least the sysadmin would have the option to enable or not.  Makes
sense to me.

> > Yet another problem with that approach is that it only addresses
> > files which get removed with "rm", and not files which are removed
> > via programs using unlink(2) which would include most file browsers,
> > etc.
> 
> Not the way I would do it.  This should be a kernel-level function.
> 
> > If you're going to do this kind of thing, you really need support for
> > it directly in the filesystem, and even then it can be dicey.
> 
> Correct.  But it's not that difficult.
> 
> Years ago I ran Interactive UNIX System V.3, and I installed the
> Norton Utilities for System V (yes, there was such a thing), which
> included undelete.  I don't think I ever used it.  I also think that
> the main thing stopping an implementation is that the people who could
> implement it don't want it.

That's typical.  And those of us stupid enough to really need it aren't
smart enough to implement it.  That probably means it'll never happen.


-- 
Jerry Dunham                     FreeBSD                (512)335-0674 (H)
jdunham@fc.net                                           jerry@dunham.org

           Lottery: A tax on people who are really bad at math


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000916205434.D27592>