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--; }
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; }