On Sun, Nov 03, 2013 at 07:48:54PM -0500, Mouse wrote: > >> On Unix System V, the link command would allow hard-linking > >> directories when used as root. > > Also, recently enough that at least some versions of NetBSD do it, > unlink(2) performed by root on the last non-. link to a directory would > silently orphan the directory, requiring fsck to fix. > > I've long thought this deserved to be considered a bug.
That is a bug, yes. > > The reason being that hard links to directories means that the tree > > of directories is no longer a DAG and that causes serious problems > > for the tree traversing code. > > Well, might no longer be a DAG. I don't see why this couldn't be > checked at link(2) time; it's checked within rename(2). It is checked, at substantial expense and, historically, mostly incorrectly. (Don't run concurrent renames on 1.4T; you can easily corrupt the filesystem.) The check also depends on the filesystem being a tree, so it's quite likely that if you tried to implement this generalization that you'd get into trouble. -- David A. Holland [email protected]
