Lines Matching defs:vol

38 status_t dlist_init(nspace *vol)
42 vol->dlist.entries = 0;
43 vol->dlist.allocated = DLIST_ENTRY_QUANTUM;
44 vol->dlist.vnid_list = malloc(sizeof(vnode_id) * vol->dlist.allocated);
45 if (vol->dlist.vnid_list == NULL) {
46 vol->dlist.allocated = 0;
54 status_t dlist_uninit(nspace *vol)
58 if (vol->dlist.vnid_list)
59 free(vol->dlist.vnid_list);
60 vol->dlist.entries = vol->dlist.allocated = 0;
61 vol->dlist.vnid_list = NULL;
66 static status_t dlist_realloc(nspace *vol, uint32 allocate)
70 DPRINTF(0, ("dlist_realloc %lx -> %lx\n", vol->dlist.allocated, allocate));
72 ASSERT(allocate != vol->dlist.allocated);
73 ASSERT(allocate > vol->dlist.entries);
81 memcpy(vnid_list, vol->dlist.vnid_list, sizeof(vnode_id) * vol->dlist.entries);
82 free(vol->dlist.vnid_list);
83 vol->dlist.vnid_list = vnid_list;
84 vol->dlist.allocated = allocate;
89 status_t dlist_add(nspace *vol, vnode_id vnid)
97 if (vol->dlist.entries == vol->dlist.allocated) {
98 if (dlist_realloc(vol, vol->dlist.allocated + DLIST_ENTRY_QUANTUM) < 0)
101 vol->dlist.vnid_list[vol->dlist.entries++] = vnid;
106 status_t dlist_remove(nspace *vol, vnode_id vnid)
112 for (i=0;i<vol->dlist.entries;i++)
113 if (vol->dlist.vnid_list[i] == vnid)
115 ASSERT(i < vol->dlist.entries);
116 if (i == vol->dlist.entries)
118 for (;i<vol->dlist.entries-1;i++)
119 vol->dlist.vnid_list[i] = vol->dlist.vnid_list[i+1];
120 vol->dlist.entries--;
122 if (vol->dlist.allocated - vol->dlist.entries > 2*DLIST_ENTRY_QUANTUM)
123 return dlist_realloc(vol, vol->dlist.allocated - DLIST_ENTRY_QUANTUM);
128 vnode_id dlist_find(nspace *vol, uint32 cluster)
134 ASSERT(((cluster >= 2) && (cluster < vol->total_clusters + 2)) || (cluster == 1));
136 for (i=0;i<vol->dlist.entries;i++) {
139 if (vcache_vnid_to_loc(vol, vol->dlist.vnid_list[i], &loc) < B_OK)
140 loc = vol->dlist.vnid_list[i];
143 return vol->dlist.vnid_list[i];
151 void dlist_dump(nspace *vol)
156 vol->dlist.entries, vol->dlist.allocated, DLIST_ENTRY_QUANTUM);
158 for (i=0;i<vol->dlist.entries;i++)
159 dprintf("%s %Lx", ((i == 0) ? "entries:" : ","), vol->dlist.vnid_list[i]);