Exemplo n.º 1
0
Arquivo: inode.c Projeto: taysom/tau
static void init_super_block (void)
{
    super_s	*super;
    buf_s	*buf;
    FN;
    buf = bget(Inode_tree.t_dev, SUPER_BLOCK);
    super = buf->b_data;
    if (super->sp_magic != SUPER_MAGIC) {
        super->sp_magic = SUPER_MAGIC;
        super->sp_root  = 0;
        super->sp_next  = SUPER_BLOCK + 1;
        super->sp_ino   = ROOT_INO + 1;

        bdirty(buf);
    }
    bput(buf);

    init_root_inode();
}
Exemplo n.º 2
0
int main(int argc, char **argv)
{
    int ret = 0;
    int i_argc;
    char **s_argv;

    if (argc < 3) {
        fprintf(stderr, "argument error: %s <mountpoint> [options] <device>\n", argv[0]);
        exit(1);
    }

    log_init();

    ret = init_super(argv[argc - 1]);
    if (ret < 0) {
        fprintf(stderr, "Invalidate filesystem\n");
        exit(1);
    }

    i_argc = argc - 1;
    s_argv = argv;
    s_argv[argc - 1] = NULL;

    ctx_equeue_init();

    ret = init_root_inode();
    if (ret < 0) {
        fprintf(stderr, "root inode init error\n");
        exit(1);
    }
    vbfs_init_bitmap();

    ret = fuse_main(i_argc, s_argv, &vbfs_op, NULL);
    log_err("fuse_main end\n");

    return ret;
}