-
- if (tn) {
- if (level > 0) {
-
- for (i = 0; i < YAFFS_NTNODES_INTERNAL && ok; i++) {
- if (tn->internal[i]) {
- ok = yaffs2_checkpt_tnode_worker(in,
- tn->internal[i],
- level - 1,
- (chunk_offset <<
- YAFFS_TNODES_INTERNAL_BITS)
- + i);
- }
- }
- } else if (level == 0) {
- u32 base_offset =
- chunk_offset << YAFFS_TNODES_LEVEL0_BITS;
- ok = (yaffs2_checkpt_wr
- (dev, &base_offset,
- sizeof(base_offset)) == sizeof(base_offset));
- if (ok)
- ok = (yaffs2_checkpt_wr
- (dev, tn,
- dev->tnode_size) == dev->tnode_size);
+ u32 base_offset;
+
+ if (!tn)
+ return 1;
+
+ if (level > 0) {
+ for (i = 0; i < YAFFS_NTNODES_INTERNAL && ok; i++) {
+ if (!tn->internal[i])
+ continue;
+ ok = yaffs2_checkpt_tnode_worker(in,
+ tn->internal[i],
+ level - 1,
+ (chunk_offset <<
+ YAFFS_TNODES_INTERNAL_BITS) + i);