• Home
  • Raw
  • Download

Lines Matching refs:resource

234 		adm_ctx->resource = drbd_find_resource(adm_ctx->resource_name);  in drbd_adm_prepare()
241 if (!adm_ctx->resource && (flags & DRBD_ADM_NEED_RESOURCE)) { in drbd_adm_prepare()
249 if (adm_ctx->resource) { in drbd_adm_prepare()
269 if (adm_ctx->device && adm_ctx->resource && in drbd_adm_prepare()
270 adm_ctx->device->resource != adm_ctx->resource) { in drbd_adm_prepare()
272 adm_ctx->minor, adm_ctx->resource->name, in drbd_adm_prepare()
273 adm_ctx->device->resource->name); in drbd_adm_prepare()
283 adm_ctx->device->resource->name); in drbd_adm_prepare()
289 if (!adm_ctx->resource) { in drbd_adm_prepare()
290 adm_ctx->resource = adm_ctx->device ? adm_ctx->device->resource in drbd_adm_prepare()
291 : adm_ctx->connection ? adm_ctx->connection->resource : NULL; in drbd_adm_prepare()
292 if (adm_ctx->resource) in drbd_adm_prepare()
293 kref_get(&adm_ctx->resource->kref); in drbd_adm_prepare()
315 if (adm_ctx->resource) { in drbd_adm_finish()
316 kref_put(&adm_ctx->resource->kref, drbd_destroy_resource); in drbd_adm_finish()
317 adm_ctx->resource = NULL; in drbd_adm_finish()
415 char *resource_name = connection->resource->name; in conn_khelper()
465 static bool resource_is_supended(struct drbd_resource *resource) in resource_is_supended() argument
467 return resource->susp || resource->susp_fen || resource->susp_nod; in resource_is_supended()
472 struct drbd_resource * const resource = connection->resource; in conn_try_outdate_peer() local
480 spin_lock_irq(&resource->req_lock); in conn_try_outdate_peer()
483 spin_unlock_irq(&resource->req_lock); in conn_try_outdate_peer()
488 spin_unlock_irq(&resource->req_lock); in conn_try_outdate_peer()
494 spin_lock_irq(&resource->req_lock); in conn_try_outdate_peer()
503 if (!resource_is_supended(resource)) in conn_try_outdate_peer()
512 spin_unlock_irq(&resource->req_lock); in conn_try_outdate_peer()
573 spin_lock_irq(&resource->req_lock); in conn_try_outdate_peer()
582 spin_unlock_irq(&resource->req_lock); in conn_try_outdate_peer()
633 for_each_connection(connection, device->resource) in drbd_set_role()
725 mutex_lock(&device->resource->conf_update); in drbd_set_role()
729 mutex_unlock(&device->resource->conf_update); in drbd_set_role()
791 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_set_role()
798 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_set_role()
1437 spin_lock_irq(&connection->resource->req_lock); in conn_reconfig_done()
1440 spin_unlock_irq(&connection->resource->req_lock); in conn_reconfig_done()
1460 spin_lock_irq(&device->resource->req_lock); in drbd_suspend_al()
1463 spin_unlock_irq(&device->resource->req_lock); in drbd_suspend_al()
1588 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_disk_opts()
1603 mutex_lock(&device->resource->conf_update); in drbd_adm_disk_opts()
1660 mutex_unlock(&device->resource->conf_update); in drbd_adm_disk_opts()
1673 drbd_bump_write_ordering(device->resource, NULL, WO_BDEV_FLUSH); in drbd_adm_disk_opts()
1695 mutex_unlock(&device->resource->conf_update); in drbd_adm_disk_opts()
1702 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_disk_opts()
1816 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_attach()
2050 drbd_bump_write_ordering(device->resource, device->ldev, WO_BDEV_FLUSH); in drbd_adm_attach()
2059 !(device->state.role == R_PRIMARY && device->resource->susp_nod)) in drbd_adm_attach()
2117 spin_lock_irq(&device->resource->req_lock); in drbd_adm_attach()
2169 spin_unlock_irq(&device->resource->req_lock); in drbd_adm_attach()
2187 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_attach()
2206 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_attach()
2250 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_detach()
2252 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_detach()
2444 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_net_opts()
2455 mutex_lock(&connection->resource->conf_update); in drbd_adm_net_opts()
2519 mutex_unlock(&connection->resource->conf_update); in drbd_adm_net_opts()
2535 mutex_unlock(&connection->resource->conf_update); in drbd_adm_net_opts()
2542 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_net_opts()
2577 struct drbd_resource *resource; in drbd_adm_connect() local
2598 for_each_resource(resource, &drbd_resources) { in drbd_adm_connect()
2599 for_each_connection(connection, resource) { in drbd_adm_connect()
2616 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_connect()
2617 connection = first_connection(adm_ctx.resource); in drbd_adm_connect()
2653 mutex_lock(&adm_ctx.resource->conf_update); in drbd_adm_connect()
2657 mutex_unlock(&adm_ctx.resource->conf_update); in drbd_adm_connect()
2689 mutex_unlock(&adm_ctx.resource->conf_update); in drbd_adm_connect()
2702 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_connect()
2711 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_connect()
2740 spin_lock_irq(&connection->resource->req_lock); in conn_try_disconnect()
2742 spin_unlock_irq(&connection->resource->req_lock); in conn_try_disconnect()
2809 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_disconnect()
2815 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_disconnect()
2856 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_resize()
2928 mutex_lock(&device->resource->conf_update); in drbd_adm_resize()
2933 mutex_unlock(&device->resource->conf_update); in drbd_adm_resize()
2963 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_resize()
2987 res_opts = adm_ctx.resource->res_opts; in drbd_adm_resource_opts()
2998 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_resource_opts()
2999 err = set_resource_options(adm_ctx.resource, &res_opts); in drbd_adm_resource_opts()
3005 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_resource_opts()
3030 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_invalidate()
3053 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_invalidate()
3072 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_simple_request_state()
3074 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_simple_request_state()
3107 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_invalidate_peer()
3133 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_invalidate_peer()
3151 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_pause_sync()
3154 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_pause_sync()
3172 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_resume_sync()
3182 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_resume_sync()
3205 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_resume_io()
3243 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_resume_io()
3255 struct drbd_resource *resource, in nla_put_drbd_cfg_context() argument
3266 if (nla_put_string(skb, T_ctx_resource_name, resource->name)) in nla_put_drbd_cfg_context()
3308 struct drbd_resource *resource; in drbd_adm_dump_resources() local
3315 for_each_resource_rcu(resource, &drbd_resources) in drbd_adm_dump_resources()
3316 if (resource == (struct drbd_resource *)cb->args[0]) in drbd_adm_dump_resources()
3321 resource = list_entry(&drbd_resources, in drbd_adm_dump_resources()
3325 list_for_each_entry_continue_rcu(resource, &drbd_resources, resources) { in drbd_adm_dump_resources()
3340 err = nla_put_drbd_cfg_context(skb, resource, NULL, NULL); in drbd_adm_dump_resources()
3343 err = res_opts_to_skb(skb, &resource->res_opts, !capable(CAP_SYS_ADMIN)); in drbd_adm_dump_resources()
3346 resource_to_info(&resource_info, resource); in drbd_adm_dump_resources()
3350 resource_statistics.res_stat_write_ordering = resource->write_ordering; in drbd_adm_dump_resources()
3354 cb->args[0] = (long)resource; in drbd_adm_dump_resources()
3408 struct drbd_resource *resource = in put_resource_in_arg0() local
3410 kref_put(&resource->kref, drbd_destroy_resource); in put_resource_in_arg0()
3425 struct drbd_resource *resource; in drbd_adm_dump_devices() local
3433 resource = (struct drbd_resource *)cb->args[0]; in drbd_adm_dump_devices()
3438 resource = drbd_find_resource(nla_data(resource_filter)); in drbd_adm_dump_devices()
3439 if (!resource) in drbd_adm_dump_devices()
3441 cb->args[0] = (long)resource; in drbd_adm_dump_devices()
3447 idr_to_search = resource ? &resource->devices : &drbd_devices; in drbd_adm_dump_devices()
3471 err = nla_put_drbd_cfg_context(skb, device->resource, NULL, device); in drbd_adm_dump_devices()
3514 struct drbd_resource *resource = NULL, *next_resource; in drbd_adm_dump_connections() local
3522 resource = (struct drbd_resource *)cb->args[0]; in drbd_adm_dump_connections()
3527 resource = drbd_find_resource(nla_data(resource_filter)); in drbd_adm_dump_connections()
3528 if (!resource) in drbd_adm_dump_connections()
3530 cb->args[0] = (long)resource; in drbd_adm_dump_connections()
3534 if (!resource) { in drbd_adm_dump_connections()
3537 resource = list_first_entry(&drbd_resources, struct drbd_resource, resources); in drbd_adm_dump_connections()
3538 kref_get(&resource->kref); in drbd_adm_dump_connections()
3539 cb->args[0] = (long)resource; in drbd_adm_dump_connections()
3545 mutex_lock(&resource->conf_update); in drbd_adm_dump_connections()
3548 for_each_connection_rcu(connection, resource) in drbd_adm_dump_connections()
3554 connection = list_entry(&resource->connections, struct drbd_connection, connections); in drbd_adm_dump_connections()
3557 list_for_each_entry_continue_rcu(connection, &resource->connections, connections) { in drbd_adm_dump_connections()
3567 if (next_resource == resource) in drbd_adm_dump_connections()
3576 mutex_unlock(&resource->conf_update); in drbd_adm_dump_connections()
3577 kref_put(&resource->kref, drbd_destroy_resource); in drbd_adm_dump_connections()
3578 resource = next_resource; in drbd_adm_dump_connections()
3579 kref_get(&resource->kref); in drbd_adm_dump_connections()
3580 cb->args[0] = (long)resource; in drbd_adm_dump_connections()
3598 err = nla_put_drbd_cfg_context(skb, resource, connection, NULL); in drbd_adm_dump_connections()
3622 if (resource) in drbd_adm_dump_connections()
3623 mutex_unlock(&resource->conf_update); in drbd_adm_dump_connections()
3676 struct drbd_resource *resource; in drbd_adm_dump_peer_devices() local
3683 resource = (struct drbd_resource *)cb->args[0]; in drbd_adm_dump_peer_devices()
3688 resource = drbd_find_resource(nla_data(resource_filter)); in drbd_adm_dump_peer_devices()
3689 if (!resource) in drbd_adm_dump_peer_devices()
3692 cb->args[0] = (long)resource; in drbd_adm_dump_peer_devices()
3697 idr_to_search = resource ? &resource->devices : &drbd_devices; in drbd_adm_dump_peer_devices()
3742 err = nla_put_drbd_cfg_context(skb, device->resource, peer_device->connection, device); in drbd_adm_dump_peer_devices()
3768 static struct drbd_connection *the_only_connection(struct drbd_resource *resource) in the_only_connection() argument
3770 struct list_head *connections = &resource->connections; in the_only_connection()
3774 return list_first_entry(&resource->connections, struct drbd_connection, connections); in the_only_connection()
3780 struct drbd_resource *resource = device->resource; in nla_put_status_info() local
3804 if (nla_put_drbd_cfg_context(skb, resource, the_only_connection(resource), device)) in nla_put_status_info()
3807 if (res_opts_to_skb(skb, &device->resource->res_opts, exclude_sensitive)) in nla_put_status_info()
3930 struct drbd_resource *resource = NULL; in get_one_status() local
3962 resource = pos; in get_one_status()
3966 resource = pos; in get_one_status()
3970 if (resource) { in get_one_status()
3972 device = idr_get_next(&resource->devices, &volume); in get_one_status()
3976 pos = list_entry_rcu(resource->resources.next, in get_one_status()
3986 resource = pos; in get_one_status()
4005 connection = the_only_connection(resource); in get_one_status()
4006 if (nla_put_drbd_cfg_context(skb, resource, connection, NULL)) in get_one_status()
4019 D_ASSERT(device, device->resource == resource); in get_one_status()
4037 cb->args[1] = (pos == resource) ? volume + 1 : 0; in get_one_status()
4059 struct drbd_resource *resource; in drbd_adm_get_status_all() local
4090 resource = drbd_find_resource(resource_name); in drbd_adm_get_status_all()
4091 if (!resource) in drbd_adm_get_status_all()
4094 kref_put(&resource->kref, drbd_destroy_resource); /* get_one_status() revalidates the resource */ in drbd_adm_get_status_all()
4098 cb->args[0] = (long)resource; in drbd_adm_get_status_all()
4100 cb->args[2] = (long)resource; in drbd_adm_get_status_all()
4160 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_start_ov()
4173 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_start_ov()
4206 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_new_c_uuid()
4239 spin_lock_irq(&device->resource->req_lock); in drbd_adm_new_c_uuid()
4242 spin_unlock_irq(&device->resource->req_lock); in drbd_adm_new_c_uuid()
4251 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_new_c_uuid()
4275 struct drbd_resource *resource) in resource_to_info() argument
4277 info->res_role = conn_highest_role(first_connection(resource)); in resource_to_info()
4278 info->res_susp = resource->susp; in resource_to_info()
4279 info->res_susp_nod = resource->susp_nod; in resource_to_info()
4280 info->res_susp_fen = resource->susp_fen; in resource_to_info()
4309 if (adm_ctx.resource) { in drbd_adm_new_resource()
4327 resource_to_info(&resource_info, connection->resource); in drbd_adm_new_resource()
4328 notify_resource_state(NULL, 0, connection->resource, in drbd_adm_new_resource()
4378 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_new_minor()
4410 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_new_minor()
4426 first_connection(device->resource); in adm_del_minor()
4464 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_del_minor()
4466 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_del_minor()
4472 static int adm_del_resource(struct drbd_resource *resource) in adm_del_resource() argument
4476 for_each_connection(connection, resource) { in adm_del_resource()
4480 if (!idr_is_empty(&resource->devices)) in adm_del_resource()
4487 notify_resource_state(NULL, 0, resource, NULL, NOTIFY_DESTROY); in adm_del_resource()
4491 list_del_rcu(&resource->resources); in adm_del_resource()
4495 list_for_each_entry(connection, &resource->connections, connections) in adm_del_resource()
4498 drbd_free_resource(resource); in adm_del_resource()
4505 struct drbd_resource *resource; in drbd_adm_down() local
4517 resource = adm_ctx.resource; in drbd_adm_down()
4518 mutex_lock(&resource->adm_mutex); in drbd_adm_down()
4520 for_each_connection(connection, resource) { in drbd_adm_down()
4539 idr_for_each_entry(&resource->devices, device, i) { in drbd_adm_down()
4548 idr_for_each_entry(&resource->devices, device, i) { in drbd_adm_down()
4557 retcode = adm_del_resource(resource); in drbd_adm_down()
4559 mutex_unlock(&resource->adm_mutex); in drbd_adm_down()
4568 struct drbd_resource *resource; in drbd_adm_del_resource() local
4576 resource = adm_ctx.resource; in drbd_adm_del_resource()
4578 mutex_lock(&resource->adm_mutex); in drbd_adm_del_resource()
4579 retcode = adm_del_resource(resource); in drbd_adm_del_resource()
4580 mutex_unlock(&resource->adm_mutex); in drbd_adm_del_resource()
4635 struct drbd_resource *resource, in notify_resource_state() argument
4659 if (nla_put_drbd_cfg_context(skb, resource, NULL, NULL) || in notify_resource_state()
4664 resource_statistics.res_stat_write_ordering = resource->write_ordering; in notify_resource_state()
4680 drbd_err(resource, "Error %d while broadcasting event. Event seq:%u\n", in notify_resource_state()
4710 if (nla_put_drbd_cfg_context(skb, device->resource, NULL, device) || in notify_device_state()
4759 if (nla_put_drbd_cfg_context(skb, connection->resource, connection, NULL) || in notify_connection_state()
4789 struct drbd_resource *resource = peer_device->device->resource; in notify_peer_device_state() local
4809 if (nla_put_drbd_cfg_context(skb, resource, peer_device->connection, peer_device->device) || in notify_peer_device_state()
4836 struct drbd_resource *resource = device ? device->resource : connection->resource; in notify_helper() local
4859 if (nla_put_drbd_cfg_context(skb, resource, connection, device) || in notify_helper()
4876 drbd_err(resource, "Error %d while broadcasting event. Event seq:%u\n", in notify_helper()
4940 notify_resource_state_change(skb, seq, state_change->resource, in get_initial_state()
4978 struct drbd_resource *resource; in drbd_adm_get_initial_state() local
4997 for_each_resource(resource, &drbd_resources) { in drbd_adm_get_initial_state()
5000 state_change = remember_old_state(resource, GFP_KERNEL); in drbd_adm_get_initial_state()