current_page = cs / spp;
page = reg->hr_slot_data[current_page];
- vec_len = min(PAGE_CACHE_SIZE,
+ vec_len = min(PAGE_CACHE_SIZE - vec_start,
(max_slots-cs) * (PAGE_CACHE_SIZE/spp) );
mlog(ML_HB_BIO, "page %d, vec_len = %u, vec_start = %u\n",
const char *name)
{
struct o2hb_region *reg = NULL;
- struct config_item *ret = NULL;
reg = kzalloc(sizeof(struct o2hb_region), GFP_KERNEL);
if (reg == NULL)
- goto out; /* ENOMEM */
+ return ERR_PTR(-ENOMEM);
config_item_init_type_name(®->hr_item, name, &o2hb_region_type);
- ret = ®->hr_item;
-
spin_lock(&o2hb_live_lock);
list_add_tail(®->hr_all_item, &o2hb_all_regions);
spin_unlock(&o2hb_live_lock);
-out:
- if (ret == NULL)
- kfree(reg);
- return ret;
+ return ®->hr_item;
}
static void o2hb_heartbeat_group_drop_item(struct config_group *group,