Lines Matching refs:nnode
384 struct ubifs_nnode *nnode) in ubifs_pack_nnode() argument
392 pack_bits(&addr, &pos, nnode->num, c->pcnt_bits); in ubifs_pack_nnode()
394 int lnum = nnode->nbranch[i].lnum; in ubifs_pack_nnode()
399 pack_bits(&addr, &pos, nnode->nbranch[i].offs, in ubifs_pack_nnode()
494 void ubifs_add_nnode_dirt(struct ubifs_info *c, struct ubifs_nnode *nnode) in ubifs_add_nnode_dirt() argument
496 struct ubifs_nnode *np = nnode->parent; in ubifs_add_nnode_dirt()
499 ubifs_add_lpt_dirt(c, np->nbranch[nnode->iip].lnum, in ubifs_add_nnode_dirt()
614 struct ubifs_nnode *nnode = NULL; in ubifs_create_dflt_lpt() local
633 nnode = kzalloc(sizeof(struct ubifs_nnode), GFP_KERNEL); in ubifs_create_dflt_lpt()
636 if (!pnode || !nnode || !buf || !ltab || !lsave) { in ubifs_create_dflt_lpt()
752 nnode->nbranch[j].lnum = blnum; in ubifs_create_dflt_lpt()
753 nnode->nbranch[j].offs = boffs; in ubifs_create_dflt_lpt()
757 nnode->nbranch[j].lnum = 0; in ubifs_create_dflt_lpt()
758 nnode->nbranch[j].offs = 0; in ubifs_create_dflt_lpt()
761 nnode->num = calc_nnode_num(row, i); in ubifs_create_dflt_lpt()
762 ubifs_pack_nnode(c, p, nnode); in ubifs_create_dflt_lpt()
856 kfree(nnode); in ubifs_create_dflt_lpt()
1002 struct ubifs_nnode *nnode) in ubifs_unpack_nnode() argument
1011 nnode->num = ubifs_unpack_bits(&addr, &pos, c->pcnt_bits); in ubifs_unpack_nnode()
1019 nnode->nbranch[i].lnum = lnum; in ubifs_unpack_nnode()
1020 nnode->nbranch[i].offs = ubifs_unpack_bits(&addr, &pos, in ubifs_unpack_nnode()
1094 static int validate_nnode(const struct ubifs_info *c, struct ubifs_nnode *nnode, in validate_nnode() argument
1102 if (nnode->num != num) in validate_nnode()
1113 int lnum = nnode->nbranch[i].lnum; in validate_nnode()
1114 int offs = nnode->nbranch[i].offs; in validate_nnode()
1196 struct ubifs_nnode *nnode = NULL; in ubifs_read_nnode() local
1208 nnode = kzalloc(sizeof(struct ubifs_nnode), GFP_NOFS); in ubifs_read_nnode()
1209 if (!nnode) { in ubifs_read_nnode()
1221 nnode->num = calc_nnode_num_from_parent(c, parent, iip); in ubifs_read_nnode()
1226 err = ubifs_unpack_nnode(c, buf, nnode); in ubifs_read_nnode()
1230 err = validate_nnode(c, nnode, parent, iip); in ubifs_read_nnode()
1234 nnode->num = calc_nnode_num_from_parent(c, parent, iip); in ubifs_read_nnode()
1236 branch->nnode = nnode; in ubifs_read_nnode()
1237 nnode->level = parent->level - 1; in ubifs_read_nnode()
1239 c->nroot = nnode; in ubifs_read_nnode()
1240 nnode->level = c->lpt_hght; in ubifs_read_nnode()
1242 nnode->parent = parent; in ubifs_read_nnode()
1243 nnode->iip = iip; in ubifs_read_nnode()
1249 kfree(nnode); in ubifs_read_nnode()
1398 struct ubifs_nnode *nnode; in ubifs_get_nnode() local
1402 nnode = branch->nnode; in ubifs_get_nnode()
1403 if (nnode) in ubifs_get_nnode()
1404 return nnode; in ubifs_get_nnode()
1408 return branch->nnode; in ubifs_get_nnode()
1449 struct ubifs_nnode *nnode; in ubifs_lpt_lookup() local
1457 nnode = c->nroot; in ubifs_lpt_lookup()
1463 nnode = ubifs_get_nnode(c, nnode, iip); in ubifs_lpt_lookup()
1464 if (IS_ERR(nnode)) in ubifs_lpt_lookup()
1465 return ERR_CAST(nnode); in ubifs_lpt_lookup()
1468 pnode = ubifs_get_pnode(c, nnode, iip); in ubifs_lpt_lookup()
1486 struct ubifs_nnode *nnode) in dirty_cow_nnode() argument
1491 if (!test_bit(COW_CNODE, &nnode->flags)) { in dirty_cow_nnode()
1493 if (!test_and_set_bit(DIRTY_CNODE, &nnode->flags)) { in dirty_cow_nnode()
1495 ubifs_add_nnode_dirt(c, nnode); in dirty_cow_nnode()
1497 return nnode; in dirty_cow_nnode()
1501 n = kmemdup(nnode, sizeof(struct ubifs_nnode), GFP_NOFS); in dirty_cow_nnode()
1517 ubifs_assert(!test_bit(OBSOLETE_CNODE, &nnode->flags)); in dirty_cow_nnode()
1518 __set_bit(OBSOLETE_CNODE, &nnode->flags); in dirty_cow_nnode()
1521 ubifs_add_nnode_dirt(c, nnode); in dirty_cow_nnode()
1522 if (nnode->parent) in dirty_cow_nnode()
1523 nnode->parent->nbranch[n->iip].nnode = n; in dirty_cow_nnode()
1580 struct ubifs_nnode *nnode; in ubifs_lpt_lookup_dirty() local
1588 nnode = c->nroot; in ubifs_lpt_lookup_dirty()
1589 nnode = dirty_cow_nnode(c, nnode); in ubifs_lpt_lookup_dirty()
1590 if (IS_ERR(nnode)) in ubifs_lpt_lookup_dirty()
1591 return ERR_CAST(nnode); in ubifs_lpt_lookup_dirty()
1597 nnode = ubifs_get_nnode(c, nnode, iip); in ubifs_lpt_lookup_dirty()
1598 if (IS_ERR(nnode)) in ubifs_lpt_lookup_dirty()
1599 return ERR_CAST(nnode); in ubifs_lpt_lookup_dirty()
1600 nnode = dirty_cow_nnode(c, nnode); in ubifs_lpt_lookup_dirty()
1601 if (IS_ERR(nnode)) in ubifs_lpt_lookup_dirty()
1602 return ERR_CAST(nnode); in ubifs_lpt_lookup_dirty()
1605 pnode = ubifs_get_pnode(c, nnode, iip); in ubifs_lpt_lookup_dirty()
1769 struct ubifs_nnode nnode; member
1775 struct ubifs_nnode *nnode; member
1796 struct ubifs_nnode *nnode; in scan_get_nnode() local
1801 nnode = branch->nnode; in scan_get_nnode()
1802 if (nnode) { in scan_get_nnode()
1804 path->ptr.nnode = nnode; in scan_get_nnode()
1805 return nnode; in scan_get_nnode()
1807 nnode = &path->nnode; in scan_get_nnode()
1809 path->ptr.nnode = nnode; in scan_get_nnode()
1810 memset(nnode, 0, sizeof(struct ubifs_nnode)); in scan_get_nnode()
1819 nnode->num = calc_nnode_num_from_parent(c, parent, iip); in scan_get_nnode()
1825 err = ubifs_unpack_nnode(c, buf, nnode); in scan_get_nnode()
1829 err = validate_nnode(c, nnode, parent, iip); in scan_get_nnode()
1833 nnode->num = calc_nnode_num_from_parent(c, parent, iip); in scan_get_nnode()
1834 nnode->level = parent->level - 1; in scan_get_nnode()
1835 nnode->parent = parent; in scan_get_nnode()
1836 nnode->iip = iip; in scan_get_nnode()
1837 return nnode; in scan_get_nnode()
1923 struct ubifs_nnode *nnode; in ubifs_lpt_scan_nolock() local
1947 path[0].ptr.nnode = c->nroot; in ubifs_lpt_scan_nolock()
1951 nnode = c->nroot; in ubifs_lpt_scan_nolock()
1957 nnode = scan_get_nnode(c, path + h, nnode, iip); in ubifs_lpt_scan_nolock()
1958 if (IS_ERR(nnode)) { in ubifs_lpt_scan_nolock()
1959 err = PTR_ERR(nnode); in ubifs_lpt_scan_nolock()
1964 pnode = scan_get_pnode(c, path + h, nnode, iip); in ubifs_lpt_scan_nolock()
1989 nnode = kmemdup(&path[h].nnode, sz, GFP_NOFS); in ubifs_lpt_scan_nolock()
1990 if (!nnode) { in ubifs_lpt_scan_nolock()
1994 parent = nnode->parent; in ubifs_lpt_scan_nolock()
1995 parent->nbranch[nnode->iip].nnode = nnode; in ubifs_lpt_scan_nolock()
1996 path[h].ptr.nnode = nnode; in ubifs_lpt_scan_nolock()
1998 path[h + 1].cnode.parent = nnode; in ubifs_lpt_scan_nolock()
2054 nnode = path[h].ptr.nnode; in ubifs_lpt_scan_nolock()
2057 iip = nnode->iip; in ubifs_lpt_scan_nolock()
2064 nnode = scan_get_nnode(c, path + h, nnode, iip); in ubifs_lpt_scan_nolock()
2065 if (IS_ERR(nnode)) { in ubifs_lpt_scan_nolock()
2066 err = PTR_ERR(nnode); in ubifs_lpt_scan_nolock()
2071 pnode = scan_get_pnode(c, path + h, nnode, iip); in ubifs_lpt_scan_nolock()
2224 struct ubifs_nnode *nnode, *nn; in dbg_check_lpt_nodes() local
2233 nnode = cnode->parent; in dbg_check_lpt_nodes()
2240 (nnode ? nnode->num : 0), cnode->iip); in dbg_check_lpt_nodes()
2273 cnode = (struct ubifs_cnode *)nnode; in dbg_check_lpt_nodes()