Lines Matching defs:znode

20  * @znode: znode from which to make new index node
26 struct ubifs_znode *znode, int lnum, int offs, int len)
34 idx->child_cnt = cpu_to_le16(znode->child_cnt);
35 idx->level = cpu_to_le16(znode->level);
36 for (i = 0; i < znode->child_cnt; i++) {
38 struct ubifs_zbranch *zbr = &znode->zbranch[i];
46 ubifs_err(c, "bad ref in znode");
47 ubifs_dump_znode(c, znode);
48 if (zbr->znode)
49 ubifs_dump_znode(c, zbr->znode);
57 znode->lnum = lnum;
58 znode->offs = offs;
59 znode->len = len;
61 err = insert_old_idx_znode(c, znode);
64 zp = znode->parent;
68 zbr = &zp->zbranch[znode->iip];
83 ubifs_assert(c, ubifs_zn_dirty(znode));
84 ubifs_assert(c, ubifs_zn_cow(znode));
90 __clear_bit(DIRTY_ZNODE, &znode->flags);
91 __clear_bit(COW_ZNODE, &znode->flags);
123 struct ubifs_znode *znode = c->enext;
128 err = make_idx_node(c, c->ileb_buf + gap_pos, znode,
134 c->enext = znode->cnext;
219 * This function merely puts the next znode into the next gap, making no attempt
431 struct ubifs_znode *znode, *cnext, *zp;
453 znode = cnext;
455 len = ubifs_idx_node_sz(c, znode->child_cnt);
471 znode->lnum = lnum;
472 znode->offs = offs;
473 znode->len = len;
476 zp = znode->parent;
481 i = znode->iip;
494 * Once lprops is updated, we can decrease the dirty znode count
503 cnext = znode->cnext;
582 * find_first_dirty - find first dirty znode.
583 * @znode: znode to begin searching from
585 static struct ubifs_znode *find_first_dirty(struct ubifs_znode *znode)
589 if (!znode)
593 if (znode->level == 0) {
594 if (ubifs_zn_dirty(znode))
595 return znode;
599 for (i = 0; i < znode->child_cnt; i++) {
600 struct ubifs_zbranch *zbr = &znode->zbranch[i];
602 if (zbr->znode && ubifs_zn_dirty(zbr->znode)) {
603 znode = zbr->znode;
609 if (ubifs_zn_dirty(znode))
610 return znode;
617 * find_next_dirty - find next dirty znode.
618 * @znode: znode to begin searching from
620 static struct ubifs_znode *find_next_dirty(struct ubifs_znode *znode)
622 int n = znode->iip + 1;
624 znode = znode->parent;
625 if (!znode)
627 for (; n < znode->child_cnt; n++) {
628 struct ubifs_zbranch *zbr = &znode->zbranch[n];
630 if (zbr->znode && ubifs_zn_dirty(zbr->znode))
631 return find_first_dirty(zbr->znode);
633 return znode;
644 struct ubifs_znode *znode, *cnext;
647 c->cnext = find_first_dirty(c->zroot.znode);
648 znode = c->enext = c->cnext;
649 if (!znode) {
655 ubifs_assert(c, !ubifs_zn_cow(znode));
656 __set_bit(COW_ZNODE, &znode->flags);
657 znode->alt = 0;
658 cnext = find_next_dirty(znode);
660 znode->cnext = c->cnext;
663 znode->cparent = znode->parent;
664 znode->ciip = znode->iip;
665 znode->cnext = cnext;
666 znode = cnext;
827 struct ubifs_znode *znode, *cnext;
862 znode = cnext;
867 idx->child_cnt = cpu_to_le16(znode->child_cnt);
868 idx->level = cpu_to_le16(znode->level);
869 for (i = 0; i < znode->child_cnt; i++) {
871 struct ubifs_zbranch *zbr = &znode->zbranch[i];
879 ubifs_err(c, "bad ref in znode");
880 ubifs_dump_znode(c, znode);
881 if (zbr->znode)
882 ubifs_dump_znode(c, zbr->znode);
887 len = ubifs_idx_node_sz(c, znode->child_cnt);
893 if (znode->cparent)
895 znode->cparent->zbranch[znode->ciip].hash);
897 if (znode->parent) {
898 if (!ubifs_zn_obsolete(znode))
900 znode->parent->zbranch[znode->iip].hash);
916 if (lnum != znode->lnum || offs != znode->offs ||
917 len != znode->len) {
918 ubifs_err(c, "inconsistent znode posn");
922 /* Grab some stuff from znode while we still can */
923 cnext = znode->cnext;
925 ubifs_assert(c, ubifs_zn_dirty(znode));
926 ubifs_assert(c, ubifs_zn_cow(znode));
936 clear_bit(DIRTY_ZNODE, &znode->flags);
938 clear_bit(COW_ZNODE, &znode->flags);
942 * We have marked the znode as clean but have not updated the
943 * @c->clean_zn_cnt counter. If this znode becomes dirty again
946 * incremented (resulting in 2 decrements for the same znode).
954 * if (!ubifs_zn_obsolete(znode)) {
963 /* Do not access znode from this point on */
1034 struct ubifs_znode *znode, *cnext;
1038 znode = cnext;
1039 cnext = znode->cnext;
1040 if (ubifs_zn_obsolete(znode))
1041 kfree(znode);
1043 znode->cnext = NULL;
1100 dbg_cmt("TNC height is %d", c->zroot.znode->level + 1);