Lines Matching defs:hash

79  * The hash queues for the access to active and cached rnodes
81 * for each hash bucket is used to control access and to synchronize
82 * lookups, additions, and deletions from the hash queue.
89 * a hash queue and the exclusive lock to the hash queue be held.
90 * If an rnode is not hashed into a hash queue, then it is destroyed
92 * about the file. The exclusive lock to the hash queue must be
93 * held in order to prevent a lookup in the hash queue from finding
95 * freelist. The lookup in the hash queue will have the hash queue
103 * rnode is looked up in the hash queues, then either the rnode
108 * The hash queue lock might be held shared and it is possible that
115 * to the hash queue and the thread doing the lookup in the hash
116 * queue is holding either a shared or exclusive lock to the hash
121 * hash bucket lock -> vnode lock
122 * hash bucket lock -> freelist lock
154 static long nacache; /* used strictly to size the number of hash queues */
2266 * into the hash queues. If the rnode for this fhandle
2269 * Note: make_rnode() may upgrade the hash bucket lock to exclusive.
2328 * into the hash queues. If the rnode for this fhandle
2331 * Note: make_rnode() may upgrade the hash bucket lock to exclusive.
2418 * This is a hash function in which seemingly obvious and harmless
2422 * rtablehash() implements Jenkins' one-at-a-time hash algorithm. The
2425 * http://burtleburtle.net/bob/hash/doobs.html
2430 * the hash algorithm still provides even distribution in all cases and with
2436 ulong_t hash, len, i;
2441 for (hash = 0, i = 0; i < len; i++) {
2442 hash += key[i];
2443 hash += (hash << 10);
2444 hash ^= (hash >> 6);
2446 hash += (hash << 3);
2447 hash ^= (hash >> 11);
2448 hash += (hash << 15);
2449 return (hash & rtablemask);
2684 * accessible by it does not reside in the hash queues,
2712 * rnode is not in the rnode hash queues, so the
2740 * Lock the hash queue and then recheck the reference count
2812 * Put a rnode in the hash table.
2814 * The caller must be holding the exclusive hash queue lock.
2834 * Remove a rnode from the hash table.
2836 * The caller must be holding the hash queue lock.
2854 * Remove a rnode from the hash table.
2856 * The caller must not be holding the hash queue lock.
2870 * The caller must be holding the hash queue lock, either shared or exclusive.
2949 * Destroy inactive vnodes from the hash queues which belong to this
2969 /* save the hash pointer before destroying */
3064 * Walk the hash queues looking for rnodes with page
3196 * holding the hash bucket locked.
3267 * rnode. Remove each of these entries from the hash
3447 * Allocate and initialize the rnode hash queues
3535 * Deallocate the rnode hash queues
4571 * hash queues for the rnode.