off = (n - 1) % INODES_PER_BLOCK;
- size = ((unsigned long) inode[off].i_size[0]) | (((unsigned long) inode[off].i_size[1]) << 8);
+ size = ((unsigned long) inode[off].i_size[0]) | (((unsigned long) inode[off].i_size[1]) << 8) | (((unsigned long) inode[off].i_size[2]) << 16) | (((unsigned long) inode[off].i_size[3]) << 24);
size += count;
- write_to_byte_array (inode[off].i_size, size, 2);
+ write_to_byte_array (inode[off].i_size, size, 4);
put_block (fp, b, inode);
}
ct = bytes;
}
- ino = alloc_inode (ofp, mode_con (mode), 2, 1);
+ ino = alloc_inode (ofp, mode_con (mode), 0, 0);
enter_dir (ofp, parent, basename, ino);
incr_size (ofp, parent, 16L);
write_to_byte_array (sup->s_log_zone_size, zone_shift, 2);
write_to_byte_array (sup->s_magic, SUPER_MAGIC, 2);
- zo = 7L + NR_INDIRECTS + (NR_INDIRECTS * NR_INDIRECTS);
- write_to_byte_array (sup->s_max_size, zo, 4);
+ zo = 7L + NR_INDIRECTS + (long) NR_INDIRECTS * NR_INDIRECTS;
+ write_to_byte_array (sup->s_max_size, zo * BLOCK_SIZE, 4);
+ write_to_byte_array (sup->s_state, 1, 2);
seekto (ofp, 2);
if (fwrite (buf, BLOCK_SIZE, 1, ofp) != 1) {
super (nzones, ninodes);
- rootdir (alloc_inode (ofp, 040777, 2, 2));
+ rootdir (alloc_inode (ofp, 040755, 2, 2));
return EXIT_SUCCESS;
}
}
- ino = alloc_inode (ofp, mode_con ("d--755"), 2, 1);
+ ino = alloc_inode (ofp, mode_con ("d--755"), 0, 0);
enter_dir (ofp, parent_ino, p1, ino);
incr_size (ofp, parent_ino, 16L);
unsigned char s_max_size[4];
unsigned char s_magic[2];
+
+ unsigned char s_state[2];
+ unsigned char s_zones[4];
};