[demo] Re: dir hardlinks (was: Re: fsync on large files)

Ulrich Schmid (uschmid@mail.hh.provi.de)
Sun, 07 Mar 1999 02:05:35 +0100


This is a multipart MIME message.

--==_Exmh_-9306602880
Content-Type: text/plain; charset=us-ascii

Hi,

I played with an algorithm to avoid cycles when hardlinking
directories. Attached is an userland demo.

Drawbacks:
- Each ancestor of the target directory must be accessed.
- It malloc's an additional piece of memory per ancestor

Advantages:
- It locks only one ancestor at a time
- All locks are released after each processed ancestor
- It uses it's own directory-specific lock. So it will not
conflict with an ordinary directory lookup.
- It's non-recursive

Ulrich Schmid

--==_Exmh_-9306602880
Content-Type: application/x-gzip ; name="test.tar.gz"
Content-Description: test.tar.gz
Content-Disposition: attachment; filename="test.tar.gz"
Content-Transfer-Encoding: base64

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
nbYAoAAA

--==_Exmh_-9306602880--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/