Lines Matching refs:reg
290 struct o2hb_region *reg = in o2hb_write_timeout() local
295 "milliseconds\n", reg->hr_dev_name, in o2hb_write_timeout()
296 jiffies_to_msecs(jiffies - reg->hr_last_timeout_start)); in o2hb_write_timeout()
300 if (test_bit(reg->hr_region_num, o2hb_quorum_region_bitmap)) in o2hb_write_timeout()
301 set_bit(reg->hr_region_num, o2hb_failed_region_bitmap); in o2hb_write_timeout()
322 static void o2hb_arm_write_timeout(struct o2hb_region *reg) in o2hb_arm_write_timeout() argument
325 if (atomic_read(®->hr_steady_iterations) != 0) in o2hb_arm_write_timeout()
333 clear_bit(reg->hr_region_num, o2hb_failed_region_bitmap); in o2hb_arm_write_timeout()
336 cancel_delayed_work(®->hr_write_timeout_work); in o2hb_arm_write_timeout()
337 reg->hr_last_timeout_start = jiffies; in o2hb_arm_write_timeout()
338 schedule_delayed_work(®->hr_write_timeout_work, in o2hb_arm_write_timeout()
342 static void o2hb_disarm_write_timeout(struct o2hb_region *reg) in o2hb_disarm_write_timeout() argument
344 cancel_delayed_work_sync(®->hr_write_timeout_work); in o2hb_disarm_write_timeout()
368 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, ¤t_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 = ®->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 = ®->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(®->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(®->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, ®->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(®->hr_steady_iterations) != 0) { in o2hb_do_disk_heartbeat()
1043 if (atomic_dec_and_test(®->hr_steady_iterations)) in o2hb_do_disk_heartbeat()
1048 if (atomic_read(®->hr_steady_iterations) != 0) { in o2hb_do_disk_heartbeat()
1049 if (atomic_dec_and_test(®->hr_unsteady_iterations)) { in o2hb_do_disk_heartbeat()
1052 config_item_name(®->hr_item), in o2hb_do_disk_heartbeat()
1053 reg->hr_dev_name); in o2hb_do_disk_heartbeat()
1054 atomic_set(®->hr_steady_iterations, 0); in o2hb_do_disk_heartbeat()
1055 reg->hr_aborted_start = 1; in o2hb_do_disk_heartbeat()
1103 struct o2hb_region *reg = data; in o2hb_thread() local
1116 !reg->hr_unclean_stop && !reg->hr_aborted_start) { in o2hb_thread()
1124 ret = o2hb_do_disk_heartbeat(reg); in o2hb_thread()
1136 elapsed_msec < reg->hr_timeout_ms) { in o2hb_thread()
1139 msleep_interruptible(reg->hr_timeout_ms - elapsed_msec); in o2hb_thread()
1143 o2hb_disarm_write_timeout(reg); in o2hb_thread()
1146 for(i = 0; !reg->hr_unclean_stop && i < reg->hr_blocks; i++) in o2hb_thread()
1147 o2hb_shutdown_slot(®->hr_slots[i]); in o2hb_thread()
1154 if (!reg->hr_unclean_stop && !reg->hr_aborted_start) { in o2hb_thread()
1155 o2hb_prepare_block(reg, 0); in o2hb_thread()
1156 ret = o2hb_issue_node_write(reg, &write_wc); in o2hb_thread()
1158 o2hb_wait_on_io(reg, &write_wc); in o2hb_thread()
1175 struct o2hb_region *reg; in o2hb_debug_open() local
1201 reg = (struct o2hb_region *)db->db_data; in o2hb_debug_open()
1202 memcpy(map, reg->hr_live_node_bitmap, db->db_size); in o2hb_debug_open()
1207 reg = (struct o2hb_region *)db->db_data; in o2hb_debug_open()
1209 reg->hr_region_num); in o2hb_debug_open()
1213 reg = (struct o2hb_region *)db->db_data; in o2hb_debug_open()
1214 lts = reg->hr_last_timeout_start; in o2hb_debug_open()
1222 reg = (struct o2hb_region *)db->db_data; in o2hb_debug_open()
1224 !!reg->hr_item_pinned); in o2hb_debug_open()
1446 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_release() local
1448 mlog(ML_HEARTBEAT, "hb region release (%s)\n", reg->hr_dev_name); in o2hb_region_release()
1450 kfree(reg->hr_tmp_block); in o2hb_region_release()
1452 if (reg->hr_slot_data) { in o2hb_region_release()
1453 for (i = 0; i < reg->hr_num_pages; i++) { in o2hb_region_release()
1454 page = reg->hr_slot_data[i]; in o2hb_region_release()
1458 kfree(reg->hr_slot_data); in o2hb_region_release()
1461 if (reg->hr_bdev) in o2hb_region_release()
1462 blkdev_put(reg->hr_bdev, FMODE_READ|FMODE_WRITE); in o2hb_region_release()
1464 kfree(reg->hr_slots); in o2hb_region_release()
1466 kfree(reg->hr_db_regnum); in o2hb_region_release()
1467 kfree(reg->hr_db_livenodes); in o2hb_region_release()
1468 debugfs_remove(reg->hr_debug_livenodes); in o2hb_region_release()
1469 debugfs_remove(reg->hr_debug_regnum); in o2hb_region_release()
1470 debugfs_remove(reg->hr_debug_elapsed_time); in o2hb_region_release()
1471 debugfs_remove(reg->hr_debug_pinned); in o2hb_region_release()
1472 debugfs_remove(reg->hr_debug_dir); in o2hb_region_release()
1475 list_del(®->hr_all_item); in o2hb_region_release()
1478 kfree(reg); in o2hb_region_release()
1481 static int o2hb_read_block_input(struct o2hb_region *reg, in o2hb_read_block_input() argument
1508 static ssize_t o2hb_region_block_bytes_read(struct o2hb_region *reg, in o2hb_region_block_bytes_read() argument
1511 return sprintf(page, "%u\n", reg->hr_block_bytes); in o2hb_region_block_bytes_read()
1514 static ssize_t o2hb_region_block_bytes_write(struct o2hb_region *reg, in o2hb_region_block_bytes_write() argument
1522 if (reg->hr_bdev) in o2hb_region_block_bytes_write()
1525 status = o2hb_read_block_input(reg, page, count, in o2hb_region_block_bytes_write()
1530 reg->hr_block_bytes = (unsigned int)block_bytes; in o2hb_region_block_bytes_write()
1531 reg->hr_block_bits = block_bits; in o2hb_region_block_bytes_write()
1536 static ssize_t o2hb_region_start_block_read(struct o2hb_region *reg, in o2hb_region_start_block_read() argument
1539 return sprintf(page, "%llu\n", reg->hr_start_block); in o2hb_region_start_block_read()
1542 static ssize_t o2hb_region_start_block_write(struct o2hb_region *reg, in o2hb_region_start_block_write() argument
1549 if (reg->hr_bdev) in o2hb_region_start_block_write()
1556 reg->hr_start_block = tmp; in o2hb_region_start_block_write()
1561 static ssize_t o2hb_region_blocks_read(struct o2hb_region *reg, in o2hb_region_blocks_read() argument
1564 return sprintf(page, "%d\n", reg->hr_blocks); in o2hb_region_blocks_read()
1567 static ssize_t o2hb_region_blocks_write(struct o2hb_region *reg, in o2hb_region_blocks_write() argument
1574 if (reg->hr_bdev) in o2hb_region_blocks_write()
1584 reg->hr_blocks = (unsigned int)tmp; in o2hb_region_blocks_write()
1589 static ssize_t o2hb_region_dev_read(struct o2hb_region *reg, in o2hb_region_dev_read() argument
1594 if (reg->hr_bdev) in o2hb_region_dev_read()
1595 ret = sprintf(page, "%s\n", reg->hr_dev_name); in o2hb_region_dev_read()
1600 static void o2hb_init_region_params(struct o2hb_region *reg) in o2hb_init_region_params() argument
1602 reg->hr_slots_per_page = PAGE_CACHE_SIZE >> reg->hr_block_bits; in o2hb_init_region_params()
1603 reg->hr_timeout_ms = O2HB_REGION_TIMEOUT_MS; in o2hb_init_region_params()
1606 reg->hr_start_block, reg->hr_blocks); in o2hb_init_region_params()
1608 reg->hr_block_bytes, reg->hr_block_bits); in o2hb_init_region_params()
1609 mlog(ML_HEARTBEAT, "hr_timeout_ms = %u\n", reg->hr_timeout_ms); in o2hb_init_region_params()
1613 static int o2hb_map_slot_data(struct o2hb_region *reg) in o2hb_map_slot_data() argument
1617 unsigned int spp = reg->hr_slots_per_page; in o2hb_map_slot_data()
1622 reg->hr_tmp_block = kmalloc(reg->hr_block_bytes, GFP_KERNEL); in o2hb_map_slot_data()
1623 if (reg->hr_tmp_block == NULL) { in o2hb_map_slot_data()
1628 reg->hr_slots = kcalloc(reg->hr_blocks, in o2hb_map_slot_data()
1630 if (reg->hr_slots == NULL) { in o2hb_map_slot_data()
1635 for(i = 0; i < reg->hr_blocks; i++) { in o2hb_map_slot_data()
1636 slot = ®->hr_slots[i]; in o2hb_map_slot_data()
1642 reg->hr_num_pages = (reg->hr_blocks + spp - 1) / spp; in o2hb_map_slot_data()
1645 reg->hr_num_pages, reg->hr_blocks, spp); in o2hb_map_slot_data()
1647 reg->hr_slot_data = kcalloc(reg->hr_num_pages, sizeof(struct page *), in o2hb_map_slot_data()
1649 if (!reg->hr_slot_data) { in o2hb_map_slot_data()
1654 for(i = 0; i < reg->hr_num_pages; i++) { in o2hb_map_slot_data()
1661 reg->hr_slot_data[i] = page; in o2hb_map_slot_data()
1666 (j < spp) && ((j + last_slot) < reg->hr_blocks); in o2hb_map_slot_data()
1668 BUG_ON((j + last_slot) >= reg->hr_blocks); in o2hb_map_slot_data()
1670 slot = ®->hr_slots[j + last_slot]; in o2hb_map_slot_data()
1674 raw += reg->hr_block_bytes; in o2hb_map_slot_data()
1684 static int o2hb_populate_slot_data(struct o2hb_region *reg) in o2hb_populate_slot_data() argument
1690 ret = o2hb_read_slots(reg, reg->hr_blocks); in o2hb_populate_slot_data()
1700 for(i = 0; i < reg->hr_blocks; i++) { in o2hb_populate_slot_data()
1701 slot = ®->hr_slots[i]; in o2hb_populate_slot_data()
1715 static ssize_t o2hb_region_dev_write(struct o2hb_region *reg, in o2hb_region_dev_write() argument
1728 if (reg->hr_bdev) in o2hb_region_dev_write()
1747 if (reg->hr_blocks == 0 || reg->hr_start_block == 0 || in o2hb_region_dev_write()
1748 reg->hr_block_bytes == 0) in o2hb_region_dev_write()
1758 reg->hr_bdev = I_BDEV(f.file->f_mapping->host); in o2hb_region_dev_write()
1759 ret = blkdev_get(reg->hr_bdev, FMODE_WRITE | FMODE_READ, NULL); in o2hb_region_dev_write()
1761 reg->hr_bdev = NULL; in o2hb_region_dev_write()
1766 bdevname(reg->hr_bdev, reg->hr_dev_name); in o2hb_region_dev_write()
1768 sectsize = bdev_logical_block_size(reg->hr_bdev); in o2hb_region_dev_write()
1769 if (sectsize != reg->hr_block_bytes) { in o2hb_region_dev_write()
1772 reg->hr_block_bytes, sectsize); in o2hb_region_dev_write()
1777 o2hb_init_region_params(reg); in o2hb_region_dev_write()
1781 get_random_bytes(®->hr_generation, in o2hb_region_dev_write()
1782 sizeof(reg->hr_generation)); in o2hb_region_dev_write()
1783 } while (reg->hr_generation == 0); in o2hb_region_dev_write()
1785 ret = o2hb_map_slot_data(reg); in o2hb_region_dev_write()
1791 ret = o2hb_populate_slot_data(reg); in o2hb_region_dev_write()
1797 INIT_DELAYED_WORK(®->hr_write_timeout_work, o2hb_write_timeout); in o2hb_region_dev_write()
1815 atomic_set(®->hr_steady_iterations, live_threshold); in o2hb_region_dev_write()
1817 atomic_set(®->hr_unsteady_iterations, (live_threshold << 1)); in o2hb_region_dev_write()
1819 hb_task = kthread_run(o2hb_thread, reg, "o2hb-%s", in o2hb_region_dev_write()
1820 reg->hr_item.ci_name); in o2hb_region_dev_write()
1828 reg->hr_task = hb_task; in o2hb_region_dev_write()
1832 atomic_read(®->hr_steady_iterations) == 0); in o2hb_region_dev_write()
1834 atomic_set(®->hr_steady_iterations, 0); in o2hb_region_dev_write()
1835 reg->hr_aborted_start = 1; in o2hb_region_dev_write()
1838 if (reg->hr_aborted_start) { in o2hb_region_dev_write()
1845 hb_task = reg->hr_task; in o2hb_region_dev_write()
1847 set_bit(reg->hr_region_num, o2hb_live_region_bitmap); in o2hb_region_dev_write()
1857 config_item_name(®->hr_item), reg->hr_dev_name); in o2hb_region_dev_write()
1865 if (reg->hr_bdev) { in o2hb_region_dev_write()
1866 blkdev_put(reg->hr_bdev, FMODE_READ|FMODE_WRITE); in o2hb_region_dev_write()
1867 reg->hr_bdev = NULL; in o2hb_region_dev_write()
1873 static ssize_t o2hb_region_pid_read(struct o2hb_region *reg, in o2hb_region_pid_read() argument
1879 if (reg->hr_task) in o2hb_region_pid_read()
1880 pid = task_pid_nr(reg->hr_task); in o2hb_region_pid_read()
1947 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_show() local
1953 ret = o2hb_region_attr->show(reg, page); in o2hb_region_show()
1961 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_region_store() local
1967 ret = o2hb_region_attr->store(reg, page, count); in o2hb_region_store()
1997 static int o2hb_debug_region_init(struct o2hb_region *reg, struct dentry *dir) in o2hb_debug_region_init() argument
2001 reg->hr_debug_dir = in o2hb_debug_region_init()
2002 debugfs_create_dir(config_item_name(®->hr_item), dir); in o2hb_debug_region_init()
2003 if (!reg->hr_debug_dir) { in o2hb_debug_region_init()
2008 reg->hr_debug_livenodes = in o2hb_debug_region_init()
2010 reg->hr_debug_dir, in o2hb_debug_region_init()
2011 &(reg->hr_db_livenodes), in o2hb_debug_region_init()
2012 sizeof(*(reg->hr_db_livenodes)), in o2hb_debug_region_init()
2014 sizeof(reg->hr_live_node_bitmap), in o2hb_debug_region_init()
2015 O2NM_MAX_NODES, reg); in o2hb_debug_region_init()
2016 if (!reg->hr_debug_livenodes) { in o2hb_debug_region_init()
2021 reg->hr_debug_regnum = in o2hb_debug_region_init()
2023 reg->hr_debug_dir, in o2hb_debug_region_init()
2024 &(reg->hr_db_regnum), in o2hb_debug_region_init()
2025 sizeof(*(reg->hr_db_regnum)), in o2hb_debug_region_init()
2027 0, O2NM_MAX_NODES, reg); in o2hb_debug_region_init()
2028 if (!reg->hr_debug_regnum) { in o2hb_debug_region_init()
2033 reg->hr_debug_elapsed_time = in o2hb_debug_region_init()
2035 reg->hr_debug_dir, in o2hb_debug_region_init()
2036 &(reg->hr_db_elapsed_time), in o2hb_debug_region_init()
2037 sizeof(*(reg->hr_db_elapsed_time)), in o2hb_debug_region_init()
2039 0, 0, reg); in o2hb_debug_region_init()
2040 if (!reg->hr_debug_elapsed_time) { in o2hb_debug_region_init()
2045 reg->hr_debug_pinned = in o2hb_debug_region_init()
2047 reg->hr_debug_dir, in o2hb_debug_region_init()
2048 &(reg->hr_db_pinned), in o2hb_debug_region_init()
2049 sizeof(*(reg->hr_db_pinned)), in o2hb_debug_region_init()
2051 0, 0, reg); in o2hb_debug_region_init()
2052 if (!reg->hr_debug_pinned) { in o2hb_debug_region_init()
2065 struct o2hb_region *reg = NULL; in o2hb_heartbeat_group_make_item() local
2068 reg = kzalloc(sizeof(struct o2hb_region), GFP_KERNEL); in o2hb_heartbeat_group_make_item()
2069 if (reg == NULL) in o2hb_heartbeat_group_make_item()
2078 reg->hr_region_num = 0; in o2hb_heartbeat_group_make_item()
2080 reg->hr_region_num = find_first_zero_bit(o2hb_region_bitmap, in o2hb_heartbeat_group_make_item()
2082 if (reg->hr_region_num >= O2NM_MAX_REGIONS) { in o2hb_heartbeat_group_make_item()
2087 set_bit(reg->hr_region_num, o2hb_region_bitmap); in o2hb_heartbeat_group_make_item()
2089 list_add_tail(®->hr_all_item, &o2hb_all_regions); in o2hb_heartbeat_group_make_item()
2092 config_item_init_type_name(®->hr_item, name, &o2hb_region_type); in o2hb_heartbeat_group_make_item()
2094 ret = o2hb_debug_region_init(reg, o2hb_debug_dir); in o2hb_heartbeat_group_make_item()
2096 config_item_put(®->hr_item); in o2hb_heartbeat_group_make_item()
2100 return ®->hr_item; in o2hb_heartbeat_group_make_item()
2102 kfree(reg); in o2hb_heartbeat_group_make_item()
2110 struct o2hb_region *reg = to_o2hb_region(item); in o2hb_heartbeat_group_drop_item() local
2115 hb_task = reg->hr_task; in o2hb_heartbeat_group_drop_item()
2116 reg->hr_task = NULL; in o2hb_heartbeat_group_drop_item()
2117 reg->hr_item_dropped = 1; in o2hb_heartbeat_group_drop_item()
2125 clear_bit(reg->hr_region_num, o2hb_region_bitmap); in o2hb_heartbeat_group_drop_item()
2126 clear_bit(reg->hr_region_num, o2hb_live_region_bitmap); in o2hb_heartbeat_group_drop_item()
2127 if (test_bit(reg->hr_region_num, o2hb_quorum_region_bitmap)) in o2hb_heartbeat_group_drop_item()
2129 clear_bit(reg->hr_region_num, o2hb_quorum_region_bitmap); in o2hb_heartbeat_group_drop_item()
2132 ((atomic_read(®->hr_steady_iterations) == 0) ? in o2hb_heartbeat_group_drop_item()
2134 reg->hr_dev_name); in o2hb_heartbeat_group_drop_item()
2141 if (atomic_read(®->hr_steady_iterations) != 0) { in o2hb_heartbeat_group_drop_item()
2142 reg->hr_aborted_start = 1; in o2hb_heartbeat_group_drop_item()
2143 atomic_set(®->hr_steady_iterations, 0); in o2hb_heartbeat_group_drop_item()
2179 struct o2hb_heartbeat_group *reg = to_o2hb_heartbeat_group(to_config_group(item)); in o2hb_heartbeat_group_show() local
2185 ret = o2hb_heartbeat_group_attr->show(reg, page); in o2hb_heartbeat_group_show()
2193 struct o2hb_heartbeat_group *reg = to_o2hb_heartbeat_group(to_config_group(item)); in o2hb_heartbeat_group_store() local
2199 ret = o2hb_heartbeat_group_attr->store(reg, page, count); in o2hb_heartbeat_group_store()
2362 struct o2hb_region *reg; in o2hb_region_pin() local
2367 list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) { in o2hb_region_pin()
2368 if (reg->hr_item_dropped) in o2hb_region_pin()
2371 uuid = config_item_name(®->hr_item); in o2hb_region_pin()
2380 if (reg->hr_item_pinned || reg->hr_item_dropped) in o2hb_region_pin()
2384 ret = o2nm_depend_item(®->hr_item); in o2hb_region_pin()
2387 reg->hr_item_pinned = 1; in o2hb_region_pin()
2414 struct o2hb_region *reg; in o2hb_region_unpin() local
2420 list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) { in o2hb_region_unpin()
2421 if (reg->hr_item_dropped) in o2hb_region_unpin()
2424 uuid = config_item_name(®->hr_item); in o2hb_region_unpin()
2431 if (reg->hr_item_pinned) { in o2hb_region_unpin()
2433 o2nm_undepend_item(®->hr_item); in o2hb_region_unpin()
2434 reg->hr_item_pinned = 0; in o2hb_region_unpin()
2633 struct o2hb_region *reg; in o2hb_stop_all_regions() local
2639 list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) in o2hb_stop_all_regions()
2640 reg->hr_unclean_stop = 1; in o2hb_stop_all_regions()
2648 struct o2hb_region *reg; in o2hb_get_all_regions() local
2655 list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) { in o2hb_get_all_regions()
2656 if (reg->hr_item_dropped) in o2hb_get_all_regions()
2659 mlog(0, "Region: %s\n", config_item_name(®->hr_item)); in o2hb_get_all_regions()
2661 memcpy(p, config_item_name(®->hr_item), in o2hb_get_all_regions()