Example #1
0
void pipeline_destroy(struct pipeline *line)
{
	while (!list_is_empty(&line->pipe))
		umem_cache_free(pipestage_cache, list_remove_head(&line->pipe));

	umem_cache_free(pipeline_cache, line);
}
Example #2
0
File: vg.c Project: nurh/copterfs
struct objstore *objstore_vg_create(const char *name,
                                    enum objstore_vg_type type)
{
    struct objstore *vg;

    if (type != OS_VG_SIMPLE)
        return ERR_PTR(EINVAL);

    vg = umem_cache_alloc(vg_cache, 0);
    if (!vg)
        return ERR_PTR(ENOMEM);

    vg->name = strdup(name);
    if (!vg->name) {
        umem_cache_free(vg_cache, vg);
        return ERR_PTR(ENOMEM);
    }

    list_create(&vg->vols, sizeof(struct objstore_vol),
                offsetof(struct objstore_vol, vg_list));

    mxinit(&vg->lock);

    mxlock(&vgs_lock);
    list_insert_tail(&vgs, vg);
    mxunlock(&vgs_lock);

    return vg;
}
Example #3
0
struct objstore_vol *objstore_vol_create(struct objstore *vg, const char *path,
					 enum objstore_mode mode)
{
	struct objstore_vol *s;
	int ret;

	if (!backend->def->vol_ops->create)
		return ERR_PTR(ENOTSUP);

	s = umem_cache_alloc(vol_cache, 0);
	if (!s)
		return ERR_PTR(ENOMEM);

	s->def = backend->def;
	s->mode = mode;
	s->path = strdup(path);
	if (!s->path) {
		ret = ENOMEM;
		goto err;
	}

	ret = s->def->vol_ops->create(s);
	if (ret)
		goto err_path;

	vg_add_vol(vg, s);

	return s;

err_path:
	free((char *) s->path);

err:
	umem_cache_free(vol_cache, s);

	return ERR_PTR(ret);
}
Example #4
0
static void
freeentry(pkgentry_t *p)
{
	umem_free(p->line, p->len);
	umem_cache_free(ecache, p);
}
Example #5
0
void nvclock_free(struct nvclock *clock)
{
	umem_cache_free(vclock_cache, clock);
}