Lines Matching refs:copy
52 struct dasd_copy_relation *copy; member
662 struct dasd_copy_relation *copy) in dasd_devmap_check_copy_relation() argument
715 if (entry == ©->entry[j]) in dasd_devmap_check_copy_relation()
718 tmp_dev = copy->entry[j].device; in dasd_devmap_check_copy_relation()
741 struct dasd_copy_relation *copy; in dasd_devmap_delete_copy_relation_device() local
744 if (!device->copy) in dasd_devmap_delete_copy_relation_device()
747 copy = device->copy; in dasd_devmap_delete_copy_relation_device()
749 if (copy->entry[i].device == device) in dasd_devmap_delete_copy_relation_device()
750 copy->entry[i].device = NULL; in dasd_devmap_delete_copy_relation_device()
753 device->copy = NULL; in dasd_devmap_delete_copy_relation_device()
765 struct dasd_copy_relation *copy; in dasd_devmap_set_device_copy_relation() local
778 copy = devmap->copy; in dasd_devmap_set_device_copy_relation()
780 if (!copy) in dasd_devmap_set_device_copy_relation()
801 if (copy->entry[i].configured && in dasd_devmap_set_device_copy_relation()
803 copy->entry[i].busid, DASD_BUS_ID_SIZE) == 0) { in dasd_devmap_set_device_copy_relation()
804 entry = ©->entry[i]; in dasd_devmap_set_device_copy_relation()
814 if (dasd_devmap_check_copy_relation(device, entry, data, copy)) { in dasd_devmap_set_device_copy_relation()
821 copy->entry[i].device = device; in dasd_devmap_set_device_copy_relation()
822 device->copy = copy; in dasd_devmap_set_device_copy_relation()
2055 struct dasd_copy_relation *copy; in dasd_copy_pair_show() local
2064 if (!devmap->copy) in dasd_copy_pair_show()
2067 copy = devmap->copy; in dasd_copy_pair_show()
2070 if (copy->entry[i].configured && copy->entry[i].primary) { in dasd_copy_pair_show()
2071 strscpy(prim_busid, copy->entry[i].busid, in dasd_copy_pair_show()
2081 if (copy->entry[i].configured && !copy->entry[i].primary) in dasd_copy_pair_show()
2083 copy->entry[i].busid); in dasd_copy_pair_show()
2092 struct dasd_copy_relation *copy, in dasd_devmap_set_copy_relation() argument
2100 if (copy->entry[i].configured && in dasd_devmap_set_copy_relation()
2101 strncmp(copy->entry[i].busid, busid, DASD_BUS_ID_SIZE) == 0) in dasd_devmap_set_copy_relation()
2104 if (!copy->entry[i].configured) in dasd_devmap_set_copy_relation()
2110 copy->entry[i].configured = true; in dasd_devmap_set_copy_relation()
2111 strscpy(copy->entry[i].busid, busid, DASD_BUS_ID_SIZE); in dasd_devmap_set_copy_relation()
2113 copy->active = ©->entry[i]; in dasd_devmap_set_copy_relation()
2114 copy->entry[i].primary = true; in dasd_devmap_set_copy_relation()
2116 if (!devmap->copy) in dasd_devmap_set_copy_relation()
2117 devmap->copy = copy; in dasd_devmap_set_copy_relation()
2122 static void dasd_devmap_del_copy_relation(struct dasd_copy_relation *copy, in dasd_devmap_del_copy_relation() argument
2130 if (copy->entry[i].configured && in dasd_devmap_del_copy_relation()
2131 strncmp(copy->entry[i].busid, busid, DASD_BUS_ID_SIZE) == 0) in dasd_devmap_del_copy_relation()
2134 if (i == DASD_CP_ENTRIES || !copy->entry[i].configured) { in dasd_devmap_del_copy_relation()
2139 copy->entry[i].configured = false; in dasd_devmap_del_copy_relation()
2140 memset(copy->entry[i].busid, 0, DASD_BUS_ID_SIZE); in dasd_devmap_del_copy_relation()
2141 if (copy->active == ©->entry[i]) { in dasd_devmap_del_copy_relation()
2142 copy->active = NULL; in dasd_devmap_del_copy_relation()
2143 copy->entry[i].primary = false; in dasd_devmap_del_copy_relation()
2150 struct dasd_copy_relation *copy; in dasd_devmap_clear_copy_relation() local
2159 if (!devmap->copy) in dasd_devmap_clear_copy_relation()
2162 copy = devmap->copy; in dasd_devmap_clear_copy_relation()
2165 if (!copy->entry[i].configured) in dasd_devmap_clear_copy_relation()
2168 if (copy->entry[i].device == copy->active->device) in dasd_devmap_clear_copy_relation()
2171 if (copy->entry[i].device) in dasd_devmap_clear_copy_relation()
2176 if (strlen(copy->entry[i].busid) == 0) in dasd_devmap_clear_copy_relation()
2178 if (copy->entry[i].device) { in dasd_devmap_clear_copy_relation()
2179 dasd_put_device(copy->entry[i].device); in dasd_devmap_clear_copy_relation()
2180 copy->entry[i].device->copy = NULL; in dasd_devmap_clear_copy_relation()
2181 copy->entry[i].device = NULL; in dasd_devmap_clear_copy_relation()
2183 devmap = dasd_find_busid_locked(copy->entry[i].busid); in dasd_devmap_clear_copy_relation()
2184 devmap->copy = NULL; in dasd_devmap_clear_copy_relation()
2185 memset(copy->entry[i].busid, 0, DASD_BUS_ID_SIZE); in dasd_devmap_clear_copy_relation()
2187 kfree(copy); in dasd_devmap_clear_copy_relation()
2240 struct dasd_copy_relation *copy; in dasd_copy_pair_store() local
2273 if (prim_devmap->copy) { in dasd_copy_pair_store()
2274 copy = prim_devmap->copy; in dasd_copy_pair_store()
2275 } else if (sec_devmap->copy) { in dasd_copy_pair_store()
2276 copy = sec_devmap->copy; in dasd_copy_pair_store()
2278 copy = kzalloc(sizeof(*copy), GFP_KERNEL); in dasd_copy_pair_store()
2279 if (!copy) in dasd_copy_pair_store()
2283 rc = dasd_devmap_set_copy_relation(prim_devmap, copy, prim_busid, true); in dasd_copy_pair_store()
2288 rc = dasd_devmap_set_copy_relation(sec_devmap, copy, sec_busid, false); in dasd_copy_pair_store()
2296 if (prim_devmap->device && !prim_devmap->device->copy) { in dasd_copy_pair_store()
2307 dasd_devmap_del_copy_relation(copy, prim_busid); in dasd_copy_pair_store()
2308 dasd_devmap_del_copy_relation(copy, sec_busid); in dasd_copy_pair_store()
2321 struct dasd_copy_relation *copy; in dasd_copy_role_show() local
2329 if (!device->copy) { in dasd_copy_role_show()
2333 copy = device->copy; in dasd_copy_role_show()
2335 if (copy->active->device == device) { in dasd_copy_role_show()
2340 if (copy->entry[i].device == device) { in dasd_copy_role_show()