Lines Matching refs:btree
14 struct bplus_header *btree, unsigned sec, in hpfs_bplus_lookup() argument
23 if (bp_internal(btree)) { in hpfs_bplus_lookup()
24 for (i = 0; i < btree->n_used_nodes; i++) in hpfs_bplus_lookup()
25 if (le32_to_cpu(btree->u.internal[i].file_secno) > sec) { in hpfs_bplus_lookup()
26 a = le32_to_cpu(btree->u.internal[i].down); in hpfs_bplus_lookup()
29 btree = &anode->btree; in hpfs_bplus_lookup()
36 for (i = 0; i < btree->n_used_nodes; i++) in hpfs_bplus_lookup()
37 if (le32_to_cpu(btree->u.external[i].file_secno) <= sec && in hpfs_bplus_lookup()
38 … le32_to_cpu(btree->u.external[i].file_secno) + le32_to_cpu(btree->u.external[i].length) > sec) { in hpfs_bplus_lookup()
39 …a = le32_to_cpu(btree->u.external[i].disk_secno) + sec - le32_to_cpu(btree->u.external[i].file_sec… in hpfs_bplus_lookup()
46 hpfs_inode->i_file_sec = le32_to_cpu(btree->u.external[i].file_secno); in hpfs_bplus_lookup()
47 hpfs_inode->i_disk_sec = le32_to_cpu(btree->u.external[i].disk_secno); in hpfs_bplus_lookup()
48 hpfs_inode->i_n_secs = le32_to_cpu(btree->u.external[i].length); in hpfs_bplus_lookup()
62 struct bplus_header *btree; in hpfs_add_sector_to_btree() local
73 btree = &fnode->btree; in hpfs_add_sector_to_btree()
76 btree = &anode->btree; in hpfs_add_sector_to_btree()
80 if ((n = btree->n_used_nodes - 1) < -!!fnod) { in hpfs_add_sector_to_btree()
85 if (bp_internal(btree)) { in hpfs_add_sector_to_btree()
86 a = le32_to_cpu(btree->u.internal[n].down); in hpfs_add_sector_to_btree()
87 btree->u.internal[n].file_secno = cpu_to_le32(-1); in hpfs_add_sector_to_btree()
93 btree = &anode->btree; in hpfs_add_sector_to_btree()
97 …if (le32_to_cpu(btree->u.external[n].file_secno) + le32_to_cpu(btree->u.external[n].length) != fse… in hpfs_add_sector_to_btree()
99 le32_to_cpu(btree->u.external[n].file_secno) + le32_to_cpu(btree->u.external[n].length), fsecno, in hpfs_add_sector_to_btree()
104 …if (hpfs_alloc_if_possible(s, se = le32_to_cpu(btree->u.external[n].disk_secno) + le32_to_cpu(btre… in hpfs_add_sector_to_btree()
105 le32_add_cpu(&btree->u.external[n].length, 1); in hpfs_add_sector_to_btree()
122 …fs = n < 0 ? 0 : le32_to_cpu(btree->u.external[n].file_secno) + le32_to_cpu(btree->u.external[n].l… in hpfs_add_sector_to_btree()
123 if (!btree->n_free_nodes) { in hpfs_add_sector_to_btree()
132 anode->btree.flags |= BP_fnode_parent; in hpfs_add_sector_to_btree()
133 anode->btree.n_used_nodes = btree->n_used_nodes; in hpfs_add_sector_to_btree()
134 anode->btree.first_free = btree->first_free; in hpfs_add_sector_to_btree()
135 anode->btree.n_free_nodes = 40 - anode->btree.n_used_nodes; in hpfs_add_sector_to_btree()
136 memcpy(&anode->u, &btree->u, btree->n_used_nodes * 12); in hpfs_add_sector_to_btree()
137 btree->flags |= BP_internal; in hpfs_add_sector_to_btree()
138 btree->n_free_nodes = 11; in hpfs_add_sector_to_btree()
139 btree->n_used_nodes = 1; in hpfs_add_sector_to_btree()
140 btree->first_free = cpu_to_le16((char *)&(btree->u.internal[1]) - (char *)btree); in hpfs_add_sector_to_btree()
141 btree->u.internal[0].file_secno = cpu_to_le32(-1); in hpfs_add_sector_to_btree()
142 btree->u.internal[0].down = cpu_to_le32(na); in hpfs_add_sector_to_btree()
153 btree = &anode->btree; in hpfs_add_sector_to_btree()
155 btree->n_free_nodes--; n = btree->n_used_nodes++; in hpfs_add_sector_to_btree()
156 le16_add_cpu(&btree->first_free, 12); in hpfs_add_sector_to_btree()
157 btree->u.external[n].disk_secno = cpu_to_le32(se); in hpfs_add_sector_to_btree()
158 btree->u.external[n].file_secno = cpu_to_le32(fs); in hpfs_add_sector_to_btree()
159 btree->u.external[n].length = cpu_to_le32(1); in hpfs_add_sector_to_btree()
170 btree = &anode->btree; in hpfs_add_sector_to_btree()
173 btree = &fnode->btree; in hpfs_add_sector_to_btree()
175 if (btree->n_free_nodes) { in hpfs_add_sector_to_btree()
176 btree->n_free_nodes--; n = btree->n_used_nodes++; in hpfs_add_sector_to_btree()
177 le16_add_cpu(&btree->first_free, 8); in hpfs_add_sector_to_btree()
178 btree->u.internal[n].file_secno = cpu_to_le32(-1); in hpfs_add_sector_to_btree()
179 btree->u.internal[n].down = cpu_to_le32(na); in hpfs_add_sector_to_btree()
180 btree->u.internal[n-1].file_secno = cpu_to_le32(fs); in hpfs_add_sector_to_btree()
188 anode->btree.flags |= BP_fnode_parent; in hpfs_add_sector_to_btree()
190 anode->btree.flags &= ~BP_fnode_parent; in hpfs_add_sector_to_btree()
197 btree->u.internal[btree->n_used_nodes - 1].file_secno = cpu_to_le32(/*fs*/-1); in hpfs_add_sector_to_btree()
204 anode->btree.flags |= BP_internal; in hpfs_add_sector_to_btree()
205 anode->btree.n_used_nodes = 1; in hpfs_add_sector_to_btree()
206 anode->btree.n_free_nodes = 59; in hpfs_add_sector_to_btree()
207 anode->btree.first_free = cpu_to_le16(16); in hpfs_add_sector_to_btree()
208 anode->btree.u.internal[0].down = cpu_to_le32(a); in hpfs_add_sector_to_btree()
209 anode->btree.u.internal[0].file_secno = cpu_to_le32(-1); in hpfs_add_sector_to_btree()
222 anode->btree.flags |= BP_fnode_parent; in hpfs_add_sector_to_btree()
231 btree = &anode->btree; in hpfs_add_sector_to_btree()
237 btree = &fnode->btree; in hpfs_add_sector_to_btree()
240 memcpy(&ranode->btree, btree, le16_to_cpu(btree->first_free)); in hpfs_add_sector_to_btree()
242 ranode->btree.flags |= BP_fnode_parent; in hpfs_add_sector_to_btree()
243 ranode->btree.n_free_nodes = (bp_internal(&ranode->btree) ? 60 : 40) - ranode->btree.n_used_nodes; in hpfs_add_sector_to_btree()
244 if (bp_internal(&ranode->btree)) for (n = 0; n < ranode->btree.n_used_nodes; n++) { in hpfs_add_sector_to_btree()
248 unode->btree.flags &= ~BP_fnode_parent; in hpfs_add_sector_to_btree()
253 btree->flags |= BP_internal; in hpfs_add_sector_to_btree()
254 btree->n_free_nodes = fnod ? 10 : 58; in hpfs_add_sector_to_btree()
255 btree->n_used_nodes = 2; in hpfs_add_sector_to_btree()
256 btree->first_free = cpu_to_le16((char *)&btree->u.internal[2] - (char *)btree); in hpfs_add_sector_to_btree()
257 btree->u.internal[0].file_secno = cpu_to_le32(fs); in hpfs_add_sector_to_btree()
258 btree->u.internal[0].down = cpu_to_le32(ra); in hpfs_add_sector_to_btree()
259 btree->u.internal[1].file_secno = cpu_to_le32(-1); in hpfs_add_sector_to_btree()
260 btree->u.internal[1].down = cpu_to_le32(na); in hpfs_add_sector_to_btree()
273 void hpfs_remove_btree(struct super_block *s, struct bplus_header *btree) in hpfs_remove_btree() argument
275 struct bplus_header *btree1 = btree; in hpfs_remove_btree()
293 btree1 = &anode->btree; in hpfs_remove_btree()
309 btree1 = &anode->btree; in hpfs_remove_btree()
310 } else btree1 = btree; in hpfs_remove_btree()
334 return hpfs_bplus_lookup(s, NULL, &anode->btree, sec, bh); in anode_lookup()
390 hpfs_remove_btree(s, &anode->btree); in hpfs_ea_remove()
403 struct bplus_header *btree; in hpfs_truncate_btree() local
409 btree = &fnode->btree; in hpfs_truncate_btree()
412 btree = &anode->btree; in hpfs_truncate_btree()
415 hpfs_remove_btree(s, btree); in hpfs_truncate_btree()
417 btree->n_free_nodes = 8; in hpfs_truncate_btree()
418 btree->n_used_nodes = 0; in hpfs_truncate_btree()
419 btree->first_free = cpu_to_le16(8); in hpfs_truncate_btree()
420 btree->flags &= ~BP_internal; in hpfs_truncate_btree()
426 while (bp_internal(btree)) { in hpfs_truncate_btree()
427 nodes = btree->n_used_nodes + btree->n_free_nodes; in hpfs_truncate_btree()
428 for (i = 0; i < btree->n_used_nodes; i++) in hpfs_truncate_btree()
429 if (le32_to_cpu(btree->u.internal[i].file_secno) >= secs) goto f; in hpfs_truncate_btree()
434 for (j = i + 1; j < btree->n_used_nodes; j++) in hpfs_truncate_btree()
435 hpfs_ea_remove(s, le32_to_cpu(btree->u.internal[j].down), 1, 0); in hpfs_truncate_btree()
436 btree->n_used_nodes = i + 1; in hpfs_truncate_btree()
437 btree->n_free_nodes = nodes - btree->n_used_nodes; in hpfs_truncate_btree()
438 btree->first_free = cpu_to_le16(8 + 8 * btree->n_used_nodes); in hpfs_truncate_btree()
440 if (btree->u.internal[i].file_secno == cpu_to_le32(secs)) { in hpfs_truncate_btree()
444 node = le32_to_cpu(btree->u.internal[i].down); in hpfs_truncate_btree()
450 btree = &anode->btree; in hpfs_truncate_btree()
452 nodes = btree->n_used_nodes + btree->n_free_nodes; in hpfs_truncate_btree()
453 for (i = 0; i < btree->n_used_nodes; i++) in hpfs_truncate_btree()
454 …if (le32_to_cpu(btree->u.external[i].file_secno) + le32_to_cpu(btree->u.external[i].length) >= sec… in hpfs_truncate_btree()
458 if (secs <= le32_to_cpu(btree->u.external[i].file_secno)) { in hpfs_truncate_btree()
462 …else if (le32_to_cpu(btree->u.external[i].file_secno) + le32_to_cpu(btree->u.external[i].length) >… in hpfs_truncate_btree()
463 hpfs_free_sectors(s, le32_to_cpu(btree->u.external[i].disk_secno) + secs - in hpfs_truncate_btree()
464 le32_to_cpu(btree->u.external[i].file_secno), le32_to_cpu(btree->u.external[i].length) in hpfs_truncate_btree()
465 - secs + le32_to_cpu(btree->u.external[i].file_secno)); /* I hope gcc optimizes this :-) */ in hpfs_truncate_btree()
466 btree->u.external[i].length = cpu_to_le32(secs - le32_to_cpu(btree->u.external[i].file_secno)); in hpfs_truncate_btree()
468 for (j = i + 1; j < btree->n_used_nodes; j++) in hpfs_truncate_btree()
469 …hpfs_free_sectors(s, le32_to_cpu(btree->u.external[j].disk_secno), le32_to_cpu(btree->u.external[j… in hpfs_truncate_btree()
470 btree->n_used_nodes = i + 1; in hpfs_truncate_btree()
471 btree->n_free_nodes = nodes - btree->n_used_nodes; in hpfs_truncate_btree()
472 btree->first_free = cpu_to_le16(8 + 12 * btree->n_used_nodes); in hpfs_truncate_btree()
487 if (!fnode_is_dir(fnode)) hpfs_remove_btree(s, &fnode->btree); in hpfs_remove_fnode()