dirhash
extern long numdirs, dirhash, listmax, inplast;
inpp = &inphead[inumber % dirhash];
for (inp = inphead[inumber % dirhash]; inp; inp = inp->i_nexthash) {
long numdirs, dirhash, listmax, inplast;
dirhash = numdirs;
long numdirs, dirhash, listmax, inplast;
struct dirhash *dir_hash; /* if VDIR */
struct dirhash *dirh;
struct dirhash *dirh;
struct dirhash *dir_hash;
struct dirhash *dirh;
struct dirhash *dirh;
struct dirhash *dirh;
struct dirhash *dirh;
struct dirhash *dirh;
dirhash_purge_entries(struct dirhash *dirh)
dirhash_purge(struct dirhash **dirhp)
struct dirhash *dirh = *dirhp;
dirhash_get(struct dirhash **dirhp)
struct dirhash *dirh;
dirhash_put(struct dirhash *dirh)
dirhash_enter(struct dirhash *dirh,
struct dirhash *p_dirh;
dirhash_enter_freed(struct dirhash *dirh, uint64_t offset, uint32_t entry_size)
dirhash_remove(struct dirhash *dirh, struct dirent *dirent,
dirhash_lookup(struct dirhash *dirh, const char *d_name, int d_namlen,
dirhash_lookup_freed(struct dirhash *dirh, uint32_t min_entrysize,
dirhash_dir_isempty(struct dirhash *dirh)
static TAILQ_HEAD(_dirhash, dirhash) dirhash_queue;
sz = sizeof(struct dirhash);
TAILQ_ENTRY(dirhash) next;
void dirhash_purge(struct dirhash **);
void dirhash_purge_entries(struct dirhash *);
void dirhash_get(struct dirhash **);
void dirhash_put(struct dirhash *);
void dirhash_enter(struct dirhash *, struct dirent *, uint64_t,
void dirhash_enter_freed(struct dirhash *, uint64_t, uint32_t);
void dirhash_remove(struct dirhash *, struct dirent *dirent,
int dirhash_lookup(struct dirhash *, const char *, int,
int dirhash_lookup_freed(struct dirhash *, uint32_t,
bool dirhash_dir_isempty(struct dirhash *dirh);
uint32_t dirhash, split_hash;
&dirhash, &hash_version, &info);
uint32_t dirhash;
if (ext2fs_htree_find_leaf(ip, name, namelen, &dirhash,
search_next = ext2fs_htree_check_next(ip, dirhash, name, &info);
struct dirhash *i_dirhash; /* Hashing for large directories */
ulfsdirhash_delslot(struct dirhash *dh, int slot)
static TAILQ_HEAD(, dirhash) ulfsdirhash_list;
struct dirhash *dh;
ulfsdirhash_cache = pool_cache_init(sizeof(struct dirhash), 0,
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh, *dh_next;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
static int ulfsdirhash_hash(struct dirhash *dh, const char *name, int namelen);
static void ulfsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff,
struct dirhash *dh;
static void ulfsdirhash_delslot(struct dirhash *dh, int slot);
static int ulfsdirhash_findslot(struct dirhash *dh, const char *name,
ulfsdirhash_hash(struct dirhash *dh, const char *name, int namelen)
ulfsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff, int dirblksiz)
ulfsdirhash_findslot(struct dirhash *dh, const char *name, int namelen,
TAILQ_ENTRY(dirhash) dh_list; /* chain of all dirhashes */
TAILQ_ENTRY(dirhash) dh_list; /* chain of all dirhashes */
struct dirhash *i_dirhash; /* Hashing for large directories */
struct dirhash *dh;
static TAILQ_HEAD(, dirhash) ufsdirhash_list;
ufsdirhash_cache = pool_cache_init(sizeof(struct dirhash), 0,
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh, *dh_next;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
struct dirhash *dh;
static int ufsdirhash_hash(struct dirhash *dh, const char *name, int namelen);
struct dirhash *dh;
static void ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff,
static void ufsdirhash_delslot(struct dirhash *dh, int slot);
static int ufsdirhash_findslot(struct dirhash *dh, const char *name,
ufsdirhash_hash(struct dirhash *dh, const char *name, int namelen)
ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff, int dirblksiz)
ufsdirhash_findslot(struct dirhash *dh, const char *name, int namelen,
ufsdirhash_delslot(struct dirhash *dh, int slot)