Re: what is necessary for directory hard links

From: Vernon Mauery
Date: Sun Jul 23 2006 - 18:53:15 EST

On Saturday 22 July 2006 19:19, you wrote:
> Bodo Eggert <7eggert@xxxxxxxxxxxx> wrote:
> > Horst H. von Brand <vonbrand@xxxxxxxxxxxx> wrote:
> > > Joshua Hudson <joshudson@xxxxxxxxx> wrote:
> > >> This patch is the sum total of all that I had to change in the kernel
> > >> VFS layer to support hard links to directories
> > >
> > > Can't be done, as it creates the possibility of loops.
> >
> > Don't do that then?
> Stop /everything/ to make sure no concurrent activity creates a loop, while
> checking the current mkdir(2) doesn't create one?

This doesn't seem that big of an issue for people to be up in arms about. You
wouldn't have to stop /everything/, would you, just have an in kernel mutex
in vfs_mkdir. It's not the most commonly used system call in the book --
meaning serializing the checking/creating of new directories would not really
hamper your system /that/ much.

Personally, I don't think hard linked directories are necessary or even that
interesting, but they certainly aren't impossible to do. I suppose there
might be some specialty filesystem that might like to do hardlinked
directories and I don't think the vfs core should make it difficult.


> > > The "only files can
> > > be hardlinked" idea makes garbage collection (== deleting of
> > > unreachable objects) simple: Just check the number of references.
> > >
> > > Detecting unconnected subgraphs uses a /lot/ of memory; and much worse,
> > > you have to stop (almost) all filesystem activity while doing it.
> >
> > In order to disconnect a directory, you'd have to empty it first, and
> > after emptying a directory, it won't be part of a loop. Maybe emtying is
> > the problem ...
> What does "emptying a directory" mean if there might be loops?
> > This feature was implemented,
> Never in my memory of any Unix (and lookalike) system in real use (I've
> seen a few).
> > and I asume it was removed for a reason.
> > Can somebody remember?
> See my objections.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at