• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/fs/hpfs/

Lines Matching defs:btree

14 		   struct bplus_header *btree, unsigned sec,
23 if (btree->internal) {
24 for (i = 0; i < btree->n_used_nodes; i++)
25 if (btree->u.internal[i].file_secno > sec) {
26 a = btree->u.internal[i].down;
29 btree = &anode->btree;
36 for (i = 0; i < btree->n_used_nodes; i++)
37 if (btree->u.external[i].file_secno <= sec &&
38 btree->u.external[i].file_secno + btree->u.external[i].length > sec) {
39 a = btree->u.external[i].disk_secno + sec - btree->u.external[i].file_secno;
46 hpfs_inode->i_file_sec = btree->u.external[i].file_secno;
47 hpfs_inode->i_disk_sec = btree->u.external[i].disk_secno;
48 hpfs_inode->i_n_secs = btree->u.external[i].length;
62 struct bplus_header *btree;
73 btree = &fnode->btree;
76 btree = &anode->btree;
80 if ((n = btree->n_used_nodes - 1) < -!!fnod) {
85 if (btree->internal) {
86 a = btree->u.internal[n].down;
87 btree->u.internal[n].file_secno = -1;
93 btree = &anode->btree;
97 if (btree->u.external[n].file_secno + btree->u.external[n].length != fsecno) {
99 btree->u.external[n].file_secno + btree->u.external[n].length, fsecno,
104 if (hpfs_alloc_if_possible(s, se = btree->u.external[n].disk_secno + btree->u.external[n].length)) {
105 btree->u.external[n].length++;
122 fs = n < 0 ? 0 : btree->u.external[n].file_secno + btree->u.external[n].length;
123 if (!btree->n_free_nodes) {
132 anode->btree.fnode_parent = 1;
133 anode->btree.n_used_nodes = btree->n_used_nodes;
134 anode->btree.first_free = btree->first_free;
135 anode->btree.n_free_nodes = 40 - anode->btree.n_used_nodes;
136 memcpy(&anode->u, &btree->u, btree->n_used_nodes * 12);
137 btree->internal = 1;
138 btree->n_free_nodes = 11;
139 btree->n_used_nodes = 1;
140 btree->first_free = (char *)&(btree->u.internal[1]) - (char *)btree;
141 btree->u.internal[0].file_secno = -1;
142 btree->u.internal[0].down = na;
153 btree = &anode->btree;
155 btree->n_free_nodes--; n = btree->n_used_nodes++;
156 btree->first_free += 12;
157 btree->u.external[n].disk_secno = se;
158 btree->u.external[n].file_secno = fs;
159 btree->u.external[n].length = 1;
170 btree = &anode->btree;
173 btree = &fnode->btree;
175 if (btree->n_free_nodes) {
176 btree->n_free_nodes--; n = btree->n_used_nodes++;
177 btree->first_free += 8;
178 btree->u.internal[n].file_secno = -1;
179 btree->u.internal[n].down = na;
180 btree->u.internal[n-1].file_secno = fs;
187 anode->btree.fnode_parent = up == node && fnod;
194 btree->u.internal[btree->n_used_nodes - 1].file_secno = /*fs*/-1;
201 anode->btree.internal = 1;
202 anode->btree.n_used_nodes = 1;
203 anode->btree.n_free_nodes = 59;
204 anode->btree.first_free = 16;
205 anode->btree.u.internal[0].down = a;
206 anode->btree.u.internal[0].file_secno = -1;
218 if (fnod) anode->btree.fnode_parent = 1;
227 btree = &anode->btree;
233 btree = &fnode->btree;
236 memcpy(&ranode->btree, btree, btree->first_free);
237 if (fnod) ranode->btree.fnode_parent = 1;
238 ranode->btree.n_free_nodes = (ranode->btree.internal ? 60 : 40) - ranode->btree.n_used_nodes;
239 if (ranode->btree.internal) for (n = 0; n < ranode->btree.n_used_nodes; n++) {
243 unode->btree.fnode_parent = 0;
248 btree->internal = 1;
249 btree->n_free_nodes = fnod ? 10 : 58;
250 btree->n_used_nodes = 2;
251 btree->first_free = (char *)&btree->u.internal[2] - (char *)btree;
252 btree->u.internal[0].file_secno = fs;
253 btree->u.internal[0].down = ra;
254 btree->u.internal[1].file_secno = -1;
255 btree->u.internal[1].down = na;
268 void hpfs_remove_btree(struct super_block *s, struct bplus_header *btree)
270 struct bplus_header *btree1 = btree;
288 btree1 = &anode->btree;
304 btree1 = &anode->btree;
305 } else btree1 = btree;
329 return hpfs_bplus_lookup(s, NULL, &anode->btree, sec, bh);
385 hpfs_remove_btree(s, &anode->btree);
398 struct bplus_header *btree;
404 btree = &fnode->btree;
407 btree = &anode->btree;
410 hpfs_remove_btree(s, btree);
412 btree->n_free_nodes = 8;
413 btree->n_used_nodes = 0;
414 btree->first_free = 8;
415 btree->internal = 0;
421 while (btree->internal) {
422 nodes = btree->n_used_nodes + btree->n_free_nodes;
423 for (i = 0; i < btree->n_used_nodes; i++)
424 if (btree->u.internal[i].file_secno >= secs) goto f;
426 hpfs_error(s, "internal btree %08x doesn't end with -1", node);
429 for (j = i + 1; j < btree->n_used_nodes; j++)
430 hpfs_ea_remove(s, btree->u.internal[j].down, 1, 0);
431 btree->n_used_nodes = i + 1;
432 btree->n_free_nodes = nodes - btree->n_used_nodes;
433 btree->first_free = 8 + 8 * btree->n_used_nodes;
435 if (btree->u.internal[i].file_secno == secs) {
439 node = btree->u.internal[i].down;
445 btree = &anode->btree;
447 nodes = btree->n_used_nodes + btree->n_free_nodes;
448 for (i = 0; i < btree->n_used_nodes; i++)
449 if (btree->u.external[i].file_secno + btree->u.external[i].length >= secs) goto ff;
453 if (secs <= btree->u.external[i].file_secno) {
457 else if (btree->u.external[i].file_secno + btree->u.external[i].length > secs) {
458 hpfs_free_sectors(s, btree->u.external[i].disk_secno + secs -
459 btree->u.external[i].file_secno, btree->u.external[i].length
460 - secs + btree->u.external[i].file_secno); /* I hope gcc optimizes this :-) */
461 btree->u.external[i].length = secs - btree->u.external[i].file_secno;
463 for (j = i + 1; j < btree->n_used_nodes; j++)
464 hpfs_free_sectors(s, btree->u.external[j].disk_secno, btree->u.external[j].length);
465 btree->n_used_nodes = i + 1;
466 btree->n_free_nodes = nodes - btree->n_used_nodes;
467 btree->first_free = 8 + 12 * btree->n_used_nodes;
482 if (!fnode->dirflag) hpfs_remove_btree(s, &fnode->btree);