Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Apr 2003 03:40:13 -0700 (PDT)
From:      Peter van Dijk <peter@dataloss.nl>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/51151: du hardlinkmatching is slow - fix included
Message-ID:  <200304201040.h3KAeDRA036799@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/51151; it has been noted by GNATS.

From: Peter van Dijk <peter@dataloss.nl>
To: David Schultz <das@FreeBSD.org>
Cc: FreeBSD-gnats-submit@FreeBSD.org
Subject: Re: bin/51151: du hardlinkmatching is slow - fix included
Date: Sun, 20 Apr 2003 12:35:12 +0200

 On Sun, Apr 20, 2003 at 02:51:49AM -0700, David Schultz wrote:
 [snip]
 > In libc, there are hcreate(3) and friends, which work nicely except
 > for their limitation of one hash table per module.  That shouldn't
 > be an issue here.  Alternatively, you could roll your own easily
 > enough.  Here's some pseudocode using chaining:
 
 I tried hcreate but it failed miserably. I may investigate that some
 more (it seemed to misbehave on my input) and send-pr about it.
 
 I intend to roll my own with open addressing indeed.
 
 > 	hval = hash(ino, dev);
 > 	for (p = table[hval]; p != NULL; p = p->next)
 > 		if (p->ino == ino && p->dev == dev)
 > 			return (1);
 > 	p = malloc(sizeof(hashent));
 > 	p->next = table[hval];
 > 	p->ino = ino;
 > 	p->dev = dev;
 > 	talbe[hval] = p;
 
 Indeed, it shouldn't be hard :)
 
 Greetz, Peter
 -- 
 peter@dataloss.nl | ~ we care a lot: about the war we're fighting
 www.dataloss.nl   |  - gee that looks like fun! (Faith no more)
 UnderNet/#clue    | 
                   |       iraqbodycount.net: min 1878, max 2325



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304201040.h3KAeDRA036799>