Ejemplo n.º 1
0
struct yaffs_obj *yaffs_alloc_raw_obj(struct yaffs_dev *dev)
{
	struct yaffs_obj *obj = NULL;
	struct list_head *lh;
	struct yaffs_allocator *allocator = dev->allocator;

	if (!allocator) {
		BUG();
		return obj;
	}

	/* If there are none left make more */
	if (list_empty(&allocator->free_objs))
		yaffs_create_free_objs(dev, YAFFS_ALLOCATION_NOBJECTS);

	if (!list_empty(&allocator->free_objs)) {
		lh = allocator->free_objs.next;
		obj = list_entry(lh, struct yaffs_obj, siblings);
		list_del_init(lh);
		allocator->n_free_objects--;
	}
Ejemplo n.º 2
0
yaffs_obj_t *yaffs_alloc_raw_obj(yaffs_dev_t *dev)
{
	yaffs_obj_t *obj = NULL;
	yaffs_Allocator *allocator = dev->allocator;

	if(!allocator) {
		YBUG();
		return obj;
	}

	/* If there are none left make more */
	if (!allocator->freeObjects)
		yaffs_create_free_objs(dev, YAFFS_ALLOCATION_NOBJECTS);

	if (allocator->freeObjects) {
		obj = allocator->freeObjects;
		allocator->freeObjects =
			(yaffs_obj_t *) (allocator->freeObjects->siblings.next);
		allocator->nFreeObjects--;
	}

	return obj;
}
struct yaffs_obj *yaffs_alloc_raw_obj(struct yaffs_dev *dev)
{
	struct yaffs_obj *obj = NULL;
	struct yaffs_allocator *allocator = dev->allocator;

	if (!allocator) {
		YBUG();
		return obj;
	}

	
	if (!allocator->free_objs)
		yaffs_create_free_objs(dev, YAFFS_ALLOCATION_NOBJECTS);

	if (allocator->free_objs) {
		obj = allocator->free_objs;
		allocator->free_objs =
		    (struct yaffs_obj *)(allocator->free_objs->siblings.next);
		allocator->n_free_objects--;
	}

	return obj;
}