lpt.c (7483d45f0aee3afc0646d185cabd4af9f6cab58c) lpt.c (7c46d0ae29ba880963db283706950de7aa86c0a0)
1/*
2 * This file is part of UBIFS.
3 *
4 * Copyright (C) 2006-2008 Nokia Corporation.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.

--- 912 unchanged lines hidden (view full) ---

921 uint16_t crc, calc_crc;
922
923 crc = ubifs_unpack_bits(&addr, &pos, UBIFS_LPT_CRC_BITS);
924 calc_crc = crc16(-1, buf + UBIFS_LPT_CRC_BYTES,
925 len - UBIFS_LPT_CRC_BYTES);
926 if (crc != calc_crc) {
927 ubifs_err("invalid crc in LPT node: crc %hx calc %hx", crc,
928 calc_crc);
1/*
2 * This file is part of UBIFS.
3 *
4 * Copyright (C) 2006-2008 Nokia Corporation.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published by
8 * the Free Software Foundation.

--- 912 unchanged lines hidden (view full) ---

921 uint16_t crc, calc_crc;
922
923 crc = ubifs_unpack_bits(&addr, &pos, UBIFS_LPT_CRC_BITS);
924 calc_crc = crc16(-1, buf + UBIFS_LPT_CRC_BYTES,
925 len - UBIFS_LPT_CRC_BYTES);
926 if (crc != calc_crc) {
927 ubifs_err("invalid crc in LPT node: crc %hx calc %hx", crc,
928 calc_crc);
929 dbg_dump_stack();
929 dump_stack();
930 return -EINVAL;
931 }
932 return 0;
933}
934
935/**
936 * check_lpt_type - check LPT node type is correct.
937 * @c: UBIFS file-system description object

--- 6 unchanged lines hidden (view full) ---

944static int check_lpt_type(uint8_t **addr, int *pos, int type)
945{
946 int node_type;
947
948 node_type = ubifs_unpack_bits(addr, pos, UBIFS_LPT_TYPE_BITS);
949 if (node_type != type) {
950 ubifs_err("invalid type (%d) in LPT node type %d", node_type,
951 type);
930 return -EINVAL;
931 }
932 return 0;
933}
934
935/**
936 * check_lpt_type - check LPT node type is correct.
937 * @c: UBIFS file-system description object

--- 6 unchanged lines hidden (view full) ---

944static int check_lpt_type(uint8_t **addr, int *pos, int type)
945{
946 int node_type;
947
948 node_type = ubifs_unpack_bits(addr, pos, UBIFS_LPT_TYPE_BITS);
949 if (node_type != type) {
950 ubifs_err("invalid type (%d) in LPT node type %d", node_type,
951 type);
952 dbg_dump_stack();
952 dump_stack();
953 return -EINVAL;
954 }
955 return 0;
956}
957
958/**
959 * unpack_pnode - unpack a pnode.
960 * @c: UBIFS file-system description object

--- 281 unchanged lines hidden (view full) ---

1242 nnode->level = c->lpt_hght;
1243 }
1244 nnode->parent = parent;
1245 nnode->iip = iip;
1246 return 0;
1247
1248out:
1249 ubifs_err("error %d reading nnode at %d:%d", err, lnum, offs);
953 return -EINVAL;
954 }
955 return 0;
956}
957
958/**
959 * unpack_pnode - unpack a pnode.
960 * @c: UBIFS file-system description object

--- 281 unchanged lines hidden (view full) ---

1242 nnode->level = c->lpt_hght;
1243 }
1244 nnode->parent = parent;
1245 nnode->iip = iip;
1246 return 0;
1247
1248out:
1249 ubifs_err("error %d reading nnode at %d:%d", err, lnum, offs);
1250 dbg_dump_stack();
1250 dump_stack();
1251 kfree(nnode);
1252 return err;
1253}
1254
1255/**
1256 * read_pnode - read a pnode from flash and link it to the tree in memory.
1257 * @c: UBIFS file-system description object
1258 * @parent: parent nnode

--- 49 unchanged lines hidden (view full) ---

1308 pnode->iip = iip;
1309 set_pnode_lnum(c, pnode);
1310 c->pnodes_have += 1;
1311 return 0;
1312
1313out:
1314 ubifs_err("error %d reading pnode at %d:%d", err, lnum, offs);
1315 dbg_dump_pnode(c, pnode, parent, iip);
1251 kfree(nnode);
1252 return err;
1253}
1254
1255/**
1256 * read_pnode - read a pnode from flash and link it to the tree in memory.
1257 * @c: UBIFS file-system description object
1258 * @parent: parent nnode

--- 49 unchanged lines hidden (view full) ---

1308 pnode->iip = iip;
1309 set_pnode_lnum(c, pnode);
1310 c->pnodes_have += 1;
1311 return 0;
1312
1313out:
1314 ubifs_err("error %d reading pnode at %d:%d", err, lnum, offs);
1315 dbg_dump_pnode(c, pnode, parent, iip);
1316 dbg_dump_stack();
1316 dump_stack();
1317 dbg_msg("calc num: %d", calc_pnode_num_from_parent(c, parent, iip));
1318 kfree(pnode);
1319 return err;
1320}
1321
1322/**
1323 * read_ltab - read LPT's own lprops table.
1324 * @c: UBIFS file-system description object

--- 954 unchanged lines hidden ---
1317 dbg_msg("calc num: %d", calc_pnode_num_from_parent(c, parent, iip));
1318 kfree(pnode);
1319 return err;
1320}
1321
1322/**
1323 * read_ltab - read LPT's own lprops table.
1324 * @c: UBIFS file-system description object

--- 954 unchanged lines hidden ---