Re: what is necessary for directory hard links

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 25 Jul 2006, Horst H. von Brand wrote:
> Bodo Eggert <[email protected]> wrote:
> > Horst H. von Brand <[email protected]> wrote:
> > > Joshua Hudson <[email protected]> wrote:

> > > [...]
> > > 
> > >> Maybe someday I'll work out a system by which much less is locked.
> > >> Conceptually, all that is requred to lock for the algorithm
> > >> to work is creating hard-links to directories and renaming directories
> > >> cross-directory.
> > > 
> > > Some 40 years of filesystem development without finding a solution to that
> > > conundrum would make that quite unlikely, but you are certainly welcome to
> > > try.
> 
> > There is a simple solution against loops: No directory may contain a
> > directory with a lower inode number.
> 
> This is a serious restriction...

That's why I relax it in the next paragraph, so you'll only have to deal 
with inode numbers iff you want to hardlink directories.

> > Off cause this would interfere with normal operations, so you'll allocate all
> > normal inodes above e.g. 0x800000 and don't test between those inodes.
> 
> And allow loops there? I don't see how that solves anything...

No. Don't allow dir-hardliks there, so you can't create loops so you can 
freely create them without risking loops.

> > If you want to hardlink, you'll use a different (privileged) mkdir call
> > that will allocate a choosen low inode number. This is also required for
> > the parents of the hardlinked directories.
> 
> Argh... even /more/ illogical restrictions!

If no (hardlink) directory may contain a lower inode directory, all 
parents need to have a low inode.


A legal tree would e.g. look like this:

1-+-100
  | +-10001
  | `-10002
  +-101
  | +-10101
  | +-10002
  | `-10102
  `-10101

In order to create a loop, you'd e.g. need to link 101 into 10002. You 
can't, because they are ordered.

Directories above 0x800000 aren't ordered except being greater than low 
inodes, so you can create normal directories anywhere you desire, but you
obviously can't hardlink them.

-- 
It's redundant! It's redundant! 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux