Lines Matching defs:fnd

656 void fnd_clear(struct ntfs_fnd *fnd)
660 for (i = fnd->level - 1; i >= 0; i--) {
661 struct indx_node *n = fnd->nodes[i];
667 fnd->nodes[i] = NULL;
669 fnd->level = 0;
670 fnd->root_de = NULL;
673 static int fnd_push(struct ntfs_fnd *fnd, struct indx_node *n,
676 int i = fnd->level;
678 if (i < 0 || i >= ARRAY_SIZE(fnd->nodes))
680 fnd->nodes[i] = n;
681 fnd->de[i] = e;
682 fnd->level += 1;
686 static struct indx_node *fnd_pop(struct ntfs_fnd *fnd)
689 int i = fnd->level;
692 n = fnd->nodes[i];
693 fnd->nodes[i] = NULL;
694 fnd->level = i;
699 static bool fnd_is_empty(struct ntfs_fnd *fnd)
701 if (!fnd->level)
702 return !fnd->root_de;
704 return !fnd->de[fnd->level - 1];
1142 struct ntfs_fnd *fnd)
1157 e = fnd->level ? fnd->de[fnd->level - 1] : fnd->root_de;
1166 fnd_clear(fnd);
1173 fnd->root_de = e;
1195 fnd_push(fnd, node, e);
1204 struct ntfs_fnd *fnd)
1210 int level = fnd->level;
1217 fnd_clear(fnd);
1218 fnd->root_de = e;
1220 if (de_is_last(fnd->root_de)) {
1225 e = hdr_next_de(&root->ihdr, fnd->root_de);
1228 fnd->root_de = e;
1230 n = fnd->nodes[level - 1];
1231 e = fnd->de[level - 1];
1240 fnd->de[level - 1] = e;
1252 fnd_pop(fnd);
1270 fnd_push(fnd, n, e);
1285 fnd_pop(fnd);
1289 level = fnd->level;
1292 n = fnd->nodes[level - 1];
1293 e = fnd->de[level - 1];
1294 } else if (fnd->root_de) {
1296 e = fnd->root_de;
1297 fnd->root_de = NULL;
1305 if (!fnd->root_de)
1306 fnd->root_de = e;
1314 size_t *off, struct ntfs_fnd *fnd)
1331 fnd_clear(fnd);
1332 fnd->root_de = e;
1344 } else if (!fnd->root_de)
1352 if (!fnd->level) {
1354 if (!de_is_last(fnd->root_de)) {
1355 e = hdr_next_de(&root->ihdr, fnd->root_de);
1358 fnd->root_de = e;
1366 e2 = fnd->de[fnd->level - 1];
1368 n = fnd->nodes[fnd->level - 1];
1374 fnd->de[fnd->level - 1] = e;
1386 fnd_pop(fnd);
1408 fnd_push(fnd, n, e);
1571 struct ntfs_fnd *fnd, bool undo)
1614 fnd_clear(fnd);
1615 fnd->root_de = e;
1683 fnd->root_de = hdr_first_de(hdr);
1744 fnd_clear(fnd);
1745 err = indx_insert_entry(indx, ni, new_de, ctx, fnd, undo);
1758 fnd_push(fnd, n, e);
1783 const void *ctx, int level, struct ntfs_fnd *fnd)
1789 struct indx_node *n1 = fnd->nodes[level];
1799 e = fnd->level - 1 == level ? fnd->de[level] : NULL;
1801 fnd->de[level] = e;
1897 err = indx_insert_into_root(indx, ni, up_e, NULL, ctx, fnd, 0);
1904 level - 1, fnd);
1930 struct ntfs_fnd *fnd, bool undo)
1938 if (!fnd) {
1944 fnd = fnd_a;
1953 if (fnd_is_empty(fnd)) {
1960 fnd);
1970 if (!fnd->level) {
1975 err = indx_insert_into_root(indx, ni, new_de, fnd->root_de, ctx,
1976 fnd, undo);
1982 fnd->level - 1, fnd);
2159 struct ntfs_fnd *fnd)
2179 fnd_push(fnd, n, e);
2186 level = fnd->level - 1;
2199 n = fnd->nodes[level];
2234 fnd->de[level] = e;
2243 fnd_clear(fnd);
2256 struct ntfs_fnd *fnd, *fnd2;
2268 fnd = fnd_get();
2269 if (!fnd) {
2287 err = indx_find(indx, ni, root, key, key_len, ctx, &diff, &e, fnd);
2296 level = fnd->level;
2299 n = fnd->nodes[level - 1];
2300 e = fnd->de[level - 1];
2305 e = fnd->root_de;
2330 fnd_pop(fnd);
2350 fnd->level - 1,
2351 fnd) :
2353 ctx, fnd, 0);
2395 level = fnd->level;
2397 hdr = level ? &fnd->nodes[level - 1]->index->ihdr : &root->ihdr;
2419 fnd_clear(fnd);
2428 fnd_push(fnd, in, NULL);
2431 /* Merge fnd2 -> fnd. */
2433 fnd_push(fnd, fnd2->nodes[level], fnd2->de[level]);
2439 for (level = fnd->level; level; level--) {
2440 struct indx_node *in = fnd->nodes[level - 1];
2539 for (; level < fnd->level; level++) {
2540 ib = fnd->nodes[level]->index;
2551 fnd_clear(fnd);
2552 /*fnd->root_de = NULL;*/
2558 err = indx_insert_entry(indx, ni, me, ctx, fnd, 0);
2571 fnd_clear(fnd);
2627 fnd_put(fnd);
2643 struct ntfs_fnd *fnd;
2648 fnd = fnd_get();
2649 if (!fnd)
2660 &diff, &e, fnd);
2685 if (fnd->level) {
2687 err = indx_write(indx, ni, fnd->nodes[fnd->level - 1], sync);
2698 fnd_put(fnd);