예제 #1
0
static void make_root_inode(struct fs_control *ctl)
{
	char *tmp = root_block;

	if (fs_version == 3) {
		*(uint32_t *) tmp = 1;
		strcpy(tmp + 4, ".");
		tmp += ctl->fs_dirsize;
		*(uint32_t *) tmp = 1;
		strcpy(tmp + 4, "..");
		tmp += ctl->fs_dirsize;
		*(uint32_t *) tmp = 2;
		strcpy(tmp + 4, ".badblocks");
	} else {
		*(uint16_t *) tmp = 1;
		strcpy(tmp + 2, ".");
		tmp += ctl->fs_dirsize;
		*(uint16_t *) tmp = 1;
		strcpy(tmp + 2, "..");
		tmp += ctl->fs_dirsize;
		*(uint16_t *) tmp = 2;
		strcpy(tmp + 2, ".badblocks");
	}
	if (fs_version < 2) {
		make_root_inode_v1(ctl);
		return;
	}
	make_root_inode_v2_v3(ctl);
}
예제 #2
0
static void make_root_inode(void)
{
	if (fs_version < 2) {
		make_root_inode_v1();
		return;
	}
	make_root_inode_v2_v3();
}