Lines Matching refs:reg

291 	struct o2hb_region *reg =  in o2hb_write_timeout()  local
296 "milliseconds\n", reg->hr_dev_name, in o2hb_write_timeout()
297 jiffies_to_msecs(jiffies - reg->hr_last_timeout_start)); in o2hb_write_timeout()
301 if (test_bit(reg->hr_region_num, o2hb_quorum_region_bitmap)) in o2hb_write_timeout()
302 set_bit(reg->hr_region_num, o2hb_failed_region_bitmap); in o2hb_write_timeout()
323 static void o2hb_arm_write_timeout(struct o2hb_region *reg) in o2hb_arm_write_timeout() argument
326 if (atomic_read(&reg->hr_steady_iterations) != 0) in o2hb_arm_write_timeout()
334 clear_bit(reg->hr_region_num, o2hb_failed_region_bitmap); in o2hb_arm_write_timeout()
337 cancel_delayed_work(&reg->hr_write_timeout_work); in o2hb_arm_write_timeout()
338 reg->hr_last_timeout_start = jiffies; in o2hb_arm_write_timeout()
339 schedule_delayed_work(&reg->hr_write_timeout_work, in o2hb_arm_write_timeout()
343 static void o2hb_disarm_write_timeout(struct o2hb_region *reg) in o2hb_disarm_write_timeout() argument
345 cancel_delayed_work_sync(&reg->hr_write_timeout_work); in o2hb_disarm_write_timeout()
369 static void o2hb_wait_on_io(struct o2hb_region *reg, in o2hb_wait_on_io() argument
391 static struct bio *o2hb_setup_one_bio(struct o2hb_region *reg, in o2hb_setup_one_bio() argument
398 unsigned int bits = reg->hr_block_bits; in o2hb_setup_one_bio()
399 unsigned int spp = reg->hr_slots_per_page; in o2hb_setup_one_bio()
416 bio->bi_iter.bi_sector = (reg->hr_start_block + cs) << (bits - 9); in o2hb_setup_one_bio()
417 bio->bi_bdev = reg->hr_bdev; in o2hb_setup_one_bio()
424 page = reg->hr_slot_data[current_page]; in o2hb_setup_one_bio()
444 static int o2hb_read_slots(struct o2hb_region *reg, in o2hb_read_slots() argument
455 bio = o2hb_setup_one_bio(reg, &wc, &current_slot, max_slots); in o2hb_read_slots()
469 o2hb_wait_on_io(reg, &wc); in o2hb_read_slots()
476 static int o2hb_issue_node_write(struct o2hb_region *reg, in o2hb_issue_node_write() argument
487 bio = o2hb_setup_one_bio(reg, write_wc, &slot, slot+1); in o2hb_issue_node_write()
502 static u32 o2hb_compute_block_crc_le(struct o2hb_region *reg, in o2hb_compute_block_crc_le() argument
514 ret = crc32_le(0, (unsigned char *) hb_block, reg->hr_block_bytes); in o2hb_compute_block_crc_le()
530 static int o2hb_verify_crc(struct o2hb_region *reg, in o2hb_verify_crc() argument
536 computed = o2hb_compute_block_crc_le(reg, hb_block); in o2hb_verify_crc()
548 static int o2hb_check_own_slot(struct o2hb_region *reg) in o2hb_check_own_slot() argument
554 slot = &reg->hr_slots[o2nm_this_node()]; in o2hb_check_own_slot()
578 "ondisk(%u:0x%llx, 0x%llx)\n", errstr, reg->hr_dev_name, in o2hb_check_own_slot()
587 static inline void o2hb_prepare_block(struct o2hb_region *reg, in o2hb_prepare_block() argument
596 slot = &reg->hr_slots[node_num]; in o2hb_prepare_block()
599 memset(hb_block, 0, reg->hr_block_bytes); in o2hb_prepare_block()
611 hb_block->hb_cksum = cpu_to_le32(o2hb_compute_block_crc_le(reg, in o2hb_prepare_block()
724 static void o2hb_set_quorum_device(struct o2hb_region *reg) in o2hb_set_quorum_device() argument
734 if (atomic_read(&reg->hr_steady_iterations) != 0) in o2hb_set_quorum_device()
739 if (test_bit(reg->hr_region_num, o2hb_quorum_region_bitmap)) in o2hb_set_quorum_device()
747 if (memcmp(reg->hr_live_node_bitmap, o2hb_live_node_bitmap, in o2hb_set_quorum_device()
752 config_item_name(&reg->hr_item), reg->hr_dev_name); in o2hb_set_quorum_device()
754 set_bit(reg->hr_region_num, o2hb_quorum_region_bitmap); in o2hb_set_quorum_device()
767 static int o2hb_check_slot(struct o2hb_region *reg, in o2hb_check_slot() argument
774 struct o2hb_disk_heartbeat_block *hb_block = reg->hr_tmp_block; in o2hb_check_slot()
781 memcpy(hb_block, slot->ds_raw_block, reg->hr_block_bytes); in o2hb_check_slot()
796 if (!o2hb_verify_crc(reg, hb_block)) { in o2hb_check_slot()
811 slot->ds_node_num, reg->hr_dev_name); in o2hb_check_slot()
861 set_bit(slot->ds_node_num, reg->hr_live_node_bitmap); in o2hb_check_slot()
894 slot->ds_node_num, reg->hr_dev_name, slot_dead_ms, in o2hb_check_slot()
911 clear_bit(slot->ds_node_num, reg->hr_live_node_bitmap); in o2hb_check_slot()
954 static int o2hb_do_disk_heartbeat(struct o2hb_region *reg) in o2hb_do_disk_heartbeat() argument
991 ret = o2hb_read_slots(reg, highest_node + 1); in o2hb_do_disk_heartbeat()
1000 own_slot_ok = o2hb_check_own_slot(reg); in o2hb_do_disk_heartbeat()
1003 o2hb_prepare_block(reg, reg->hr_generation); in o2hb_do_disk_heartbeat()
1005 ret = o2hb_issue_node_write(reg, &write_wc); in o2hb_do_disk_heartbeat()
1014 membership_change |= o2hb_check_slot(reg, &reg->hr_slots[i]); in o2hb_do_disk_heartbeat()
1022 o2hb_wait_on_io(reg, &write_wc); in o2hb_do_disk_heartbeat()
1028 write_wc.wc_error, reg->hr_dev_name); in o2hb_do_disk_heartbeat()
1035 o2hb_set_quorum_device(reg); in o2hb_do_disk_heartbeat()
1036 o2hb_arm_write_timeout(reg); in o2hb_do_disk_heartbeat()
1041 if (atomic_read(&reg->hr_steady_iterations) != 0) { in o2hb_do_disk_heartbeat()
1043 if (atomic_dec_and_test(&reg->hr_steady_iterations)) in o2hb_do_disk_heartbeat()
1048 if (atomic_read(&reg->hr_steady_iterations) != 0) { in o2hb_do_disk_heartbeat()
1049 if (atomic_dec_and_test(&reg->hr_unsteady_iterations)) { in o2hb_do_disk_heartbeat()
1052 config_item_name(&reg->hr_item), in o2hb_do_disk_heartbeat()
1053 reg->hr_dev_name); in o2hb_do_disk_heartbeat()
1054 atomic_set(&reg->hr_steady_iterations, 0); in o2hb_do_disk_heartbeat()
1055 reg->hr_aborted_start = 1; in o2hb_do_disk_heartbeat()
1072 struct o2hb_region *reg = data; in o2hb_thread() local
1085 reg->hr_node_deleted = 1; in o2hb_thread()
1091 !reg->hr_unclean_stop && !reg->hr_aborted_start) { in o2hb_thread()
1099 ret = o2hb_do_disk_heartbeat(reg); in o2hb_thread()
1111 elapsed_msec < reg->hr_timeout_ms) { in o2hb_thread()
1114 msleep_interruptible(reg->hr_timeout_ms - elapsed_msec); in o2hb_thread()
1118 o2hb_disarm_write_timeout(reg); in o2hb_thread()
1121 for(i = 0; !reg->hr_unclean_stop && i < reg->hr_blocks; i++) in o2hb_thread()
1122 o2hb_shutdown_slot(&reg->hr_slots[i]); in o2hb_thread()
1129 if (!reg->hr_unclean_stop && !reg->hr_aborted_start) { in o2hb_thread()
1130 o2hb_prepare_block(reg, 0); in o2hb_thread()
1131 ret = o2hb_issue_node_write(reg, &write_wc); in o2hb_thread()
1133 o2hb_wait_on_io(reg, &write_wc); in o2hb_thread()
1150 struct o2hb_region *reg; in o2hb_debug_open() local
1176 reg = (struct o2hb_region *)db->db_data; in o2hb_debug_open()
1177 memcpy(map, reg->hr_live_node_bitmap, db->db_size); in o2hb_debug_open()
1182 reg = (struct o2hb_region *)db->db_data; in o2hb_debug_open()
1184 reg->hr_region_num); in o2hb_debug_open()
1188 reg = (struct o2hb_region *)db->db_data; in o2hb_debug_open()
1189 lts = reg->hr_last_timeout_start; in o2hb_debug_open()
1197 reg = (struct o2hb_region *)db->db_data; in o2hb_debug_open()
1199 !!reg->hr_item_pinned); in o2hb_debug_open()
1421 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_release() local
1423 mlog(ML_HEARTBEAT, "hb region release (%s)\n", reg->hr_dev_name); in o2hb_region_release()
1425 kfree(reg->hr_tmp_block); in o2hb_region_release()
1427 if (reg->hr_slot_data) { in o2hb_region_release()
1428 for (i = 0; i < reg->hr_num_pages; i++) { in o2hb_region_release()
1429 page = reg->hr_slot_data[i]; in o2hb_region_release()
1433 kfree(reg->hr_slot_data); in o2hb_region_release()
1436 if (reg->hr_bdev) in o2hb_region_release()
1437 blkdev_put(reg->hr_bdev, FMODE_READ|FMODE_WRITE); in o2hb_region_release()
1439 kfree(reg->hr_slots); in o2hb_region_release()
1441 kfree(reg->hr_db_regnum); in o2hb_region_release()
1442 kfree(reg->hr_db_livenodes); in o2hb_region_release()
1443 debugfs_remove(reg->hr_debug_livenodes); in o2hb_region_release()
1444 debugfs_remove(reg->hr_debug_regnum); in o2hb_region_release()
1445 debugfs_remove(reg->hr_debug_elapsed_time); in o2hb_region_release()
1446 debugfs_remove(reg->hr_debug_pinned); in o2hb_region_release()
1447 debugfs_remove(reg->hr_debug_dir); in o2hb_region_release()
1450 list_del(&reg->hr_all_item); in o2hb_region_release()
1453 kfree(reg); in o2hb_region_release()
1456 static int o2hb_read_block_input(struct o2hb_region *reg, in o2hb_read_block_input() argument
1493 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_block_bytes_store() local
1498 if (reg->hr_bdev) in o2hb_region_block_bytes_store()
1501 status = o2hb_read_block_input(reg, page, count, in o2hb_region_block_bytes_store()
1506 reg->hr_block_bytes = (unsigned int)block_bytes; in o2hb_region_block_bytes_store()
1507 reg->hr_block_bits = block_bits; in o2hb_region_block_bytes_store()
1522 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_start_block_store() local
1526 if (reg->hr_bdev) in o2hb_region_start_block_store()
1533 reg->hr_start_block = tmp; in o2hb_region_start_block_store()
1547 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_blocks_store() local
1551 if (reg->hr_bdev) in o2hb_region_blocks_store()
1561 reg->hr_blocks = (unsigned int)tmp; in o2hb_region_blocks_store()
1576 static void o2hb_init_region_params(struct o2hb_region *reg) in o2hb_init_region_params() argument
1578 reg->hr_slots_per_page = PAGE_CACHE_SIZE >> reg->hr_block_bits; in o2hb_init_region_params()
1579 reg->hr_timeout_ms = O2HB_REGION_TIMEOUT_MS; in o2hb_init_region_params()
1582 reg->hr_start_block, reg->hr_blocks); in o2hb_init_region_params()
1584 reg->hr_block_bytes, reg->hr_block_bits); in o2hb_init_region_params()
1585 mlog(ML_HEARTBEAT, "hr_timeout_ms = %u\n", reg->hr_timeout_ms); in o2hb_init_region_params()
1589 static int o2hb_map_slot_data(struct o2hb_region *reg) in o2hb_map_slot_data() argument
1593 unsigned int spp = reg->hr_slots_per_page; in o2hb_map_slot_data()
1598 reg->hr_tmp_block = kmalloc(reg->hr_block_bytes, GFP_KERNEL); in o2hb_map_slot_data()
1599 if (reg->hr_tmp_block == NULL) in o2hb_map_slot_data()
1602 reg->hr_slots = kcalloc(reg->hr_blocks, in o2hb_map_slot_data()
1604 if (reg->hr_slots == NULL) in o2hb_map_slot_data()
1607 for(i = 0; i < reg->hr_blocks; i++) { in o2hb_map_slot_data()
1608 slot = &reg->hr_slots[i]; in o2hb_map_slot_data()
1614 reg->hr_num_pages = (reg->hr_blocks + spp - 1) / spp; in o2hb_map_slot_data()
1617 reg->hr_num_pages, reg->hr_blocks, spp); in o2hb_map_slot_data()
1619 reg->hr_slot_data = kcalloc(reg->hr_num_pages, sizeof(struct page *), in o2hb_map_slot_data()
1621 if (!reg->hr_slot_data) in o2hb_map_slot_data()
1624 for(i = 0; i < reg->hr_num_pages; i++) { in o2hb_map_slot_data()
1629 reg->hr_slot_data[i] = page; in o2hb_map_slot_data()
1634 (j < spp) && ((j + last_slot) < reg->hr_blocks); in o2hb_map_slot_data()
1636 BUG_ON((j + last_slot) >= reg->hr_blocks); in o2hb_map_slot_data()
1638 slot = &reg->hr_slots[j + last_slot]; in o2hb_map_slot_data()
1642 raw += reg->hr_block_bytes; in o2hb_map_slot_data()
1652 static int o2hb_populate_slot_data(struct o2hb_region *reg) in o2hb_populate_slot_data() argument
1658 ret = o2hb_read_slots(reg, reg->hr_blocks); in o2hb_populate_slot_data()
1666 for(i = 0; i < reg->hr_blocks; i++) { in o2hb_populate_slot_data()
1667 slot = &reg->hr_slots[i]; in o2hb_populate_slot_data()
1685 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_dev_store() local
1695 if (reg->hr_bdev) in o2hb_region_dev_store()
1714 if (reg->hr_blocks == 0 || reg->hr_start_block == 0 || in o2hb_region_dev_store()
1715 reg->hr_block_bytes == 0) in o2hb_region_dev_store()
1725 reg->hr_bdev = I_BDEV(f.file->f_mapping->host); in o2hb_region_dev_store()
1726 ret = blkdev_get(reg->hr_bdev, FMODE_WRITE | FMODE_READ, NULL); in o2hb_region_dev_store()
1728 reg->hr_bdev = NULL; in o2hb_region_dev_store()
1733 bdevname(reg->hr_bdev, reg->hr_dev_name); in o2hb_region_dev_store()
1735 sectsize = bdev_logical_block_size(reg->hr_bdev); in o2hb_region_dev_store()
1736 if (sectsize != reg->hr_block_bytes) { in o2hb_region_dev_store()
1739 reg->hr_block_bytes, sectsize); in o2hb_region_dev_store()
1744 o2hb_init_region_params(reg); in o2hb_region_dev_store()
1748 get_random_bytes(&reg->hr_generation, in o2hb_region_dev_store()
1749 sizeof(reg->hr_generation)); in o2hb_region_dev_store()
1750 } while (reg->hr_generation == 0); in o2hb_region_dev_store()
1752 ret = o2hb_map_slot_data(reg); in o2hb_region_dev_store()
1758 ret = o2hb_populate_slot_data(reg); in o2hb_region_dev_store()
1764 INIT_DELAYED_WORK(&reg->hr_write_timeout_work, o2hb_write_timeout); in o2hb_region_dev_store()
1782 atomic_set(&reg->hr_steady_iterations, live_threshold); in o2hb_region_dev_store()
1784 atomic_set(&reg->hr_unsteady_iterations, (live_threshold << 1)); in o2hb_region_dev_store()
1786 hb_task = kthread_run(o2hb_thread, reg, "o2hb-%s", in o2hb_region_dev_store()
1787 reg->hr_item.ci_name); in o2hb_region_dev_store()
1795 reg->hr_task = hb_task; in o2hb_region_dev_store()
1799 atomic_read(&reg->hr_steady_iterations) == 0 || in o2hb_region_dev_store()
1800 reg->hr_node_deleted); in o2hb_region_dev_store()
1802 atomic_set(&reg->hr_steady_iterations, 0); in o2hb_region_dev_store()
1803 reg->hr_aborted_start = 1; in o2hb_region_dev_store()
1806 if (reg->hr_aborted_start) { in o2hb_region_dev_store()
1811 if (reg->hr_node_deleted) { in o2hb_region_dev_store()
1818 hb_task = reg->hr_task; in o2hb_region_dev_store()
1820 set_bit(reg->hr_region_num, o2hb_live_region_bitmap); in o2hb_region_dev_store()
1830 config_item_name(&reg->hr_item), reg->hr_dev_name); in o2hb_region_dev_store()
1838 if (reg->hr_bdev) { in o2hb_region_dev_store()
1839 blkdev_put(reg->hr_bdev, FMODE_READ|FMODE_WRITE); in o2hb_region_dev_store()
1840 reg->hr_bdev = NULL; in o2hb_region_dev_store()
1848 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_pid_show() local
1852 if (reg->hr_task) in o2hb_region_pid_show()
1853 pid = task_pid_nr(reg->hr_task); in o2hb_region_pid_show()
1901 static int o2hb_debug_region_init(struct o2hb_region *reg, struct dentry *dir) in o2hb_debug_region_init() argument
1905 reg->hr_debug_dir = in o2hb_debug_region_init()
1906 debugfs_create_dir(config_item_name(&reg->hr_item), dir); in o2hb_debug_region_init()
1907 if (!reg->hr_debug_dir) { in o2hb_debug_region_init()
1912 reg->hr_debug_livenodes = in o2hb_debug_region_init()
1914 reg->hr_debug_dir, in o2hb_debug_region_init()
1915 &(reg->hr_db_livenodes), in o2hb_debug_region_init()
1916 sizeof(*(reg->hr_db_livenodes)), in o2hb_debug_region_init()
1918 sizeof(reg->hr_live_node_bitmap), in o2hb_debug_region_init()
1919 O2NM_MAX_NODES, reg); in o2hb_debug_region_init()
1920 if (!reg->hr_debug_livenodes) { in o2hb_debug_region_init()
1925 reg->hr_debug_regnum = in o2hb_debug_region_init()
1927 reg->hr_debug_dir, in o2hb_debug_region_init()
1928 &(reg->hr_db_regnum), in o2hb_debug_region_init()
1929 sizeof(*(reg->hr_db_regnum)), in o2hb_debug_region_init()
1931 0, O2NM_MAX_NODES, reg); in o2hb_debug_region_init()
1932 if (!reg->hr_debug_regnum) { in o2hb_debug_region_init()
1937 reg->hr_debug_elapsed_time = in o2hb_debug_region_init()
1939 reg->hr_debug_dir, in o2hb_debug_region_init()
1940 &(reg->hr_db_elapsed_time), in o2hb_debug_region_init()
1941 sizeof(*(reg->hr_db_elapsed_time)), in o2hb_debug_region_init()
1943 0, 0, reg); in o2hb_debug_region_init()
1944 if (!reg->hr_debug_elapsed_time) { in o2hb_debug_region_init()
1949 reg->hr_debug_pinned = in o2hb_debug_region_init()
1951 reg->hr_debug_dir, in o2hb_debug_region_init()
1952 &(reg->hr_db_pinned), in o2hb_debug_region_init()
1953 sizeof(*(reg->hr_db_pinned)), in o2hb_debug_region_init()
1955 0, 0, reg); in o2hb_debug_region_init()
1956 if (!reg->hr_debug_pinned) { in o2hb_debug_region_init()
1969 struct o2hb_region *reg = NULL; in o2hb_heartbeat_group_make_item() local
1972 reg = kzalloc(sizeof(struct o2hb_region), GFP_KERNEL); in o2hb_heartbeat_group_make_item()
1973 if (reg == NULL) in o2hb_heartbeat_group_make_item()
1982 reg->hr_region_num = 0; in o2hb_heartbeat_group_make_item()
1984 reg->hr_region_num = find_first_zero_bit(o2hb_region_bitmap, in o2hb_heartbeat_group_make_item()
1986 if (reg->hr_region_num >= O2NM_MAX_REGIONS) { in o2hb_heartbeat_group_make_item()
1991 set_bit(reg->hr_region_num, o2hb_region_bitmap); in o2hb_heartbeat_group_make_item()
1993 list_add_tail(&reg->hr_all_item, &o2hb_all_regions); in o2hb_heartbeat_group_make_item()
1996 config_item_init_type_name(&reg->hr_item, name, &o2hb_region_type); in o2hb_heartbeat_group_make_item()
1998 ret = o2hb_debug_region_init(reg, o2hb_debug_dir); in o2hb_heartbeat_group_make_item()
2000 config_item_put(&reg->hr_item); in o2hb_heartbeat_group_make_item()
2004 return &reg->hr_item; in o2hb_heartbeat_group_make_item()
2006 kfree(reg); in o2hb_heartbeat_group_make_item()
2014 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_heartbeat_group_drop_item() local
2019 hb_task = reg->hr_task; in o2hb_heartbeat_group_drop_item()
2020 reg->hr_task = NULL; in o2hb_heartbeat_group_drop_item()
2021 reg->hr_item_dropped = 1; in o2hb_heartbeat_group_drop_item()
2029 clear_bit(reg->hr_region_num, o2hb_region_bitmap); in o2hb_heartbeat_group_drop_item()
2030 clear_bit(reg->hr_region_num, o2hb_live_region_bitmap); in o2hb_heartbeat_group_drop_item()
2031 if (test_bit(reg->hr_region_num, o2hb_quorum_region_bitmap)) in o2hb_heartbeat_group_drop_item()
2033 clear_bit(reg->hr_region_num, o2hb_quorum_region_bitmap); in o2hb_heartbeat_group_drop_item()
2036 ((atomic_read(&reg->hr_steady_iterations) == 0) ? in o2hb_heartbeat_group_drop_item()
2038 reg->hr_dev_name); in o2hb_heartbeat_group_drop_item()
2045 if (atomic_read(&reg->hr_steady_iterations) != 0) { in o2hb_heartbeat_group_drop_item()
2046 reg->hr_aborted_start = 1; in o2hb_heartbeat_group_drop_item()
2047 atomic_set(&reg->hr_steady_iterations, 0); in o2hb_heartbeat_group_drop_item()
2210 struct o2hb_region *reg; in o2hb_region_pin() local
2215 list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) { in o2hb_region_pin()
2216 if (reg->hr_item_dropped) in o2hb_region_pin()
2219 uuid = config_item_name(&reg->hr_item); in o2hb_region_pin()
2228 if (reg->hr_item_pinned || reg->hr_item_dropped) in o2hb_region_pin()
2232 ret = o2nm_depend_item(&reg->hr_item); in o2hb_region_pin()
2235 reg->hr_item_pinned = 1; in o2hb_region_pin()
2262 struct o2hb_region *reg; in o2hb_region_unpin() local
2268 list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) { in o2hb_region_unpin()
2269 if (reg->hr_item_dropped) in o2hb_region_unpin()
2272 uuid = config_item_name(&reg->hr_item); in o2hb_region_unpin()
2279 if (reg->hr_item_pinned) { in o2hb_region_unpin()
2281 o2nm_undepend_item(&reg->hr_item); in o2hb_region_unpin()
2282 reg->hr_item_pinned = 0; in o2hb_region_unpin()
2481 struct o2hb_region *reg; in o2hb_stop_all_regions() local
2487 list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) in o2hb_stop_all_regions()
2488 reg->hr_unclean_stop = 1; in o2hb_stop_all_regions()
2496 struct o2hb_region *reg; in o2hb_get_all_regions() local
2503 list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) { in o2hb_get_all_regions()
2504 if (reg->hr_item_dropped) in o2hb_get_all_regions()
2507 mlog(0, "Region: %s\n", config_item_name(&reg->hr_item)); in o2hb_get_all_regions()
2509 memcpy(p, config_item_name(&reg->hr_item), in o2hb_get_all_regions()