Messages in this thread | | | From | Vernon Mauery <> | Subject | Re: what is necessary for directory hard links | Date | Sun, 23 Jul 2006 15:27:23 -0700 |
| |
On Saturday 22 July 2006 19:19, you wrote: > Bodo Eggert <7eggert@elstempel.de> wrote: > > Horst H. von Brand <vonbrand@inf.utfsm.cl> wrote: > > > Joshua Hudson <joshudson@gmail.com> 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.
--Vernon
> > > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |