Esempio n. 1
0
td_image_t *
tapdisk_image_allocate(const char *file, int type, td_flag_t flags)
{
	int err;
	td_image_t *image;

	image = calloc(1, sizeof(td_image_t));
	if (!image)
		return NULL;

	err = tapdisk_namedup(&image->name, file);
	if (err) {
		free(image);
		return NULL;
	}

	image->type    = type;
	image->flags   = flags;
	INIT_LIST_HEAD(&image->next);

	return image;
}
Esempio n. 2
0
static int
lcache_open(td_driver_t * driver, const char *name, td_flag_t flags)
{
    td_lcache_t *cache = driver->data;
    int err;

    err = tapdisk_namedup(&cache->name, (char *) name);
    if (err)
        goto fail;

    err = lcache_create_buffers(cache);
    if (err)
        goto fail;

    timerclear(&cache->ts);
    cache->wr_en = 1;

    return 0;

  fail:
    lcache_close(driver);
    return err;
}