| /src/sys/sys/ |
| dirhash.h | 1 /* $NetBSD: dirhash.h,v 1.7 2025/10/31 10:35:52 reinoud Exp $ */ 47 struct dirhash { struct 54 TAILQ_ENTRY(dirhash) next; 57 #define DIRH_PURGED 0x0001 /* dirhash has been purged */ 58 #define DIRH_COMPLETE 0x0002 /* dirhash is complete */ 59 #define DIRH_BROKEN 0x0004 /* dirhash is broken on readin */ 66 void dirhash_purge(struct dirhash **); 67 void dirhash_purge_entries(struct dirhash *); 68 void dirhash_get(struct dirhash **); 69 void dirhash_put(struct dirhash *); [all...] |
| /src/sys/kern/ |
| vfs_dirhash.c | 38 #include <sys/dirhash.h> 54 * defaults for dirhash cache sizes: 56 * - cap maximum size of the default dirhash cache at 32mb. 64 * The locking protocol of the dirhash structures is fairly simple: 70 * The dirhash structure is considered part of the vnode/inode structure and 73 * The dirhash entries are considered part of the dirhash structure and thus 84 static TAILQ_HEAD(_dirhash, dirhash) dirhash_queue; 95 /* initialise dirhash queue */ 98 /* init dirhash pools * [all...] |
| vfs_init.c | 76 #include <sys/dirhash.h> 433 * Initialise generic dirhash.
|
| /src/sys/ufs/lfs/ |
| ulfs_dirhash.h | 2 /* from NetBSD: dirhash.h,v 1.7 2013/06/09 17:57:09 dholland Exp */ 28 * $FreeBSD: src/sys/ufs/ufs/dirhash.h,v 1.2.2.2 2004/12/08 11:54:13 dwmalone Exp $ 55 * Dirhash uses a score mechanism to achieve a hybrid between a 71 #define DH_SCOREINIT 8 /* initial dh_score when dirhash built */ 85 struct dirhash { struct 103 int dh_score; /* access count for this dirhash */ 108 TAILQ_ENTRY(dirhash) dh_list; /* chain of all dirhashes */ 113 * Dirhash functions.
|
| ulfs_dirhash.c | 61 * Defaults for dirhash cache sizes: 63 * - disable dirhash (set the cache size to 0 bytes) if the 65 * - cap maximum size of the dirhash cache at 32MB. 82 static int ulfsdirhash_hash(struct dirhash *dh, const char *name, int namelen); 83 static void ulfsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff, 85 static void ulfsdirhash_delslot(struct dirhash *dh, int slot); 86 static int ulfsdirhash_findslot(struct dirhash *dh, const char *name, 104 /* Dirhash list; recently-used entries are near the tail. */ 105 static TAILQ_HEAD(, dirhash) ulfsdirhash_list; 119 * dirhash, but anything can steal its memory and set dh_hash to NULL [all...] |
| lfs_inode.h | 170 struct dirhash *i_dirhash; /* Hashing for large directories */
|
| /src/sys/ufs/ufs/ |
| dirhash.h | 1 /* $NetBSD: dirhash.h,v 1.10 2026/01/22 03:23:36 riastradh Exp $ */ 27 * $FreeBSD: src/sys/ufs/ufs/dirhash.h,v 1.2.2.2 2004/12/08 11:54:13 dwmalone Exp $ 64 * Dirhash uses a score mechanism to achieve a hybrid between a 80 #define DH_SCOREINIT 8 /* initial dh_score when dirhash built */ 94 struct dirhash { struct 112 int dh_score; /* access count for this dirhash */ 117 TAILQ_ENTRY(dirhash) dh_list; /* chain of all dirhashes */ 122 * Dirhash functions.
|
| ufs_dirhash.c | 54 #include <ufs/ufs/dirhash.h> 62 * Defaults for dirhash cache sizes: 64 * - disable dirhash (set the cache size to 0 bytes) if the 66 * - cap maximum size of the dirhash cache at 32MB. 83 static int ufsdirhash_hash(struct dirhash *dh, const char *name, int namelen); 84 static void ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff, 86 static void ufsdirhash_delslot(struct dirhash *dh, int slot); 87 static int ufsdirhash_findslot(struct dirhash *dh, const char *name, 105 /* Dirhash list; recently-used entries are near the tail. */ 106 static TAILQ_HEAD(, dirhash) ufsdirhash_list [all...] |
| inode.h | 156 struct dirhash *i_dirhash; /* Hashing for large directories */
|
| ufs_inode.c | 63 #include <ufs/ufs/dirhash.h>
|
| ufs_vfsops.c | 64 #include <ufs/ufs/dirhash.h>
|
| ufs_lookup.c | 65 #include <ufs/ufs/dirhash.h> 447 * Use dirhash for fast operations on large directories. The logic 1184 * Remove the dirhash entry. This is complicated by the fact
|
| /src/sys/fs/nilfs/ |
| nilfs.h | 193 struct dirhash *dir_hash; /* if VDIR */
|
| nilfs_subr.c | 50 #include <sys/dirhash.h> 713 /* remove dirhash if present */ 768 struct dirhash *dirh; 783 /* make sure we have a dirhash to work on */ 794 DPRINTF(DIRHASH, ("Filling directory hash\n")); 796 /* make sure we have a clean dirhash to add to */ 839 DPRINTF(DIRHASH, ("copying `%*.*s`\n", name_len, 864 struct dirhash *dirh; 876 /* get our dirhash and make sure its read in */ 887 DPRINTF(DIRHASH, ("dirhash_lookup looking for `%*.*s`\n" [all...] |
| nilfs_vfsops.c | 62 #include <sys/dirhash.h>
|
| /src/sys/ufs/ext2fs/ |
| ext2fs_htree.c | 490 uint32_t dirhash, split_hash; local 513 &dirhash, &hash_version, &info); 810 uint32_t dirhash; local 822 if (ext2fs_htree_find_leaf(ip, name, namelen, &dirhash, 861 search_next = ext2fs_htree_check_next(ip, dirhash, name, &info);
|
| /src/sbin/fsck_ffs/ |
| fsck.h | 255 extern long numdirs, dirhash, listmax, inplast;
|
| main.c | 89 long numdirs, dirhash, listmax, inplast; variable
|
| inode.c | 505 inpp = &inphead[inumber % dirhash]; 541 for (inp = inphead[inumber % dirhash]; inp; inp = inp->i_nexthash) {
|
| setup.c | 523 dirhash = numdirs;
|
| /src/sys/fs/udf/ |
| udf.h | 395 struct dirhash *dir_hash;
|
| udf_rename.c | 47 #include <sys/dirhash.h>
|
| udf_vfsops.c | 63 #include <sys/dirhash.h>
|
| udf_subr.c | 64 #include <sys/dirhash.h> 4510 struct dirhash *dirh; 4519 /* make sure we have a dirhash to work on */ 4529 /* make sure we have a clean dirhash to add to */ 4565 /* append to the dirhash */ 4591 struct dirhash *dirh; 4603 /* get our dirhash and make sure its read in */ 4618 DPRINTF(DIRHASH, ("dirhash_lookup looking for `%*.*s`\n", 4630 /* search our dirhash hits */ 4647 DPRINTF(DIRHASH, ("dirhash_lookup\tchecking `%*.*s`\n" [all...] |
| /src/sbin/fsdb/ |
| fsdb.c | 80 long numdirs, dirhash, listmax, inplast; variable
|