Lines Matching refs:resource
203 adm_ctx->resource = drbd_find_resource(adm_ctx->resource_name); in drbd_adm_prepare()
210 if (!adm_ctx->resource && (flags & DRBD_ADM_NEED_RESOURCE)) { in drbd_adm_prepare()
218 if (adm_ctx->resource) { in drbd_adm_prepare()
238 if (adm_ctx->device && adm_ctx->resource && in drbd_adm_prepare()
239 adm_ctx->device->resource != adm_ctx->resource) { in drbd_adm_prepare()
241 adm_ctx->minor, adm_ctx->resource->name, in drbd_adm_prepare()
242 adm_ctx->device->resource->name); in drbd_adm_prepare()
252 adm_ctx->device->resource->name); in drbd_adm_prepare()
258 if (!adm_ctx->resource) { in drbd_adm_prepare()
259 adm_ctx->resource = adm_ctx->device ? adm_ctx->device->resource in drbd_adm_prepare()
260 : adm_ctx->connection ? adm_ctx->connection->resource : NULL; in drbd_adm_prepare()
261 if (adm_ctx->resource) in drbd_adm_prepare()
262 kref_get(&adm_ctx->resource->kref); in drbd_adm_prepare()
284 if (adm_ctx->resource) { in drbd_adm_finish()
285 kref_put(&adm_ctx->resource->kref, drbd_destroy_resource); in drbd_adm_finish()
286 adm_ctx->resource = NULL; in drbd_adm_finish()
382 char *resource_name = connection->resource->name; in conn_khelper()
447 spin_lock_irq(&connection->resource->req_lock); in conn_try_outdate_peer()
450 spin_unlock_irq(&connection->resource->req_lock); in conn_try_outdate_peer()
455 spin_unlock_irq(&connection->resource->req_lock); in conn_try_outdate_peer()
520 spin_lock_irq(&connection->resource->req_lock); in conn_try_outdate_peer()
529 spin_unlock_irq(&connection->resource->req_lock); in conn_try_outdate_peer()
580 for_each_connection(connection, device->resource) in drbd_set_role()
671 mutex_lock(&device->resource->conf_update); in drbd_set_role()
675 mutex_unlock(&device->resource->conf_update); in drbd_set_role()
737 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_set_role()
744 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_set_role()
1239 spin_lock_irq(&connection->resource->req_lock); in conn_reconfig_done()
1242 spin_unlock_irq(&connection->resource->req_lock); in conn_reconfig_done()
1262 spin_lock_irq(&device->resource->req_lock); in drbd_suspend_al()
1265 spin_unlock_irq(&device->resource->req_lock); in drbd_suspend_al()
1330 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_disk_opts()
1345 mutex_lock(&device->resource->conf_update); in drbd_adm_disk_opts()
1408 mutex_unlock(&device->resource->conf_update); in drbd_adm_disk_opts()
1421 drbd_bump_write_ordering(device->resource, NULL, WO_bdev_flush); in drbd_adm_disk_opts()
1439 mutex_unlock(&device->resource->conf_update); in drbd_adm_disk_opts()
1446 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_disk_opts()
1479 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_attach()
1730 drbd_bump_write_ordering(device->resource, device->ldev, WO_bdev_flush); in drbd_adm_attach()
1738 !(device->state.role == R_PRIMARY && device->resource->susp_nod)) in drbd_adm_attach()
1796 spin_lock_irq(&device->resource->req_lock); in drbd_adm_attach()
1848 spin_unlock_irq(&device->resource->req_lock); in drbd_adm_attach()
1866 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_attach()
1889 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_attach()
1950 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_detach()
1952 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_detach()
2144 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_net_opts()
2155 mutex_lock(&connection->resource->conf_update); in drbd_adm_net_opts()
2219 mutex_unlock(&connection->resource->conf_update); in drbd_adm_net_opts()
2235 mutex_unlock(&connection->resource->conf_update); in drbd_adm_net_opts()
2242 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_net_opts()
2254 struct drbd_resource *resource; in drbd_adm_connect() local
2275 for_each_resource(resource, &drbd_resources) { in drbd_adm_connect()
2276 for_each_connection(connection, resource) { in drbd_adm_connect()
2293 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_connect()
2294 connection = first_connection(adm_ctx.resource); in drbd_adm_connect()
2330 mutex_lock(&adm_ctx.resource->conf_update); in drbd_adm_connect()
2334 mutex_unlock(&adm_ctx.resource->conf_update); in drbd_adm_connect()
2350 mutex_unlock(&adm_ctx.resource->conf_update); in drbd_adm_connect()
2363 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_connect()
2372 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_connect()
2461 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_disconnect()
2467 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_disconnect()
2508 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_resize()
2580 mutex_lock(&device->resource->conf_update); in drbd_adm_resize()
2585 mutex_unlock(&device->resource->conf_update); in drbd_adm_resize()
2614 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_resize()
2637 res_opts = adm_ctx.resource->res_opts; in drbd_adm_resource_opts()
2648 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_resource_opts()
2649 err = set_resource_options(adm_ctx.resource, &res_opts); in drbd_adm_resource_opts()
2655 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_resource_opts()
2680 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_invalidate()
2703 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_invalidate()
2722 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_simple_request_state()
2724 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_simple_request_state()
2757 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_invalidate_peer()
2783 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_invalidate_peer()
2801 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_pause_sync()
2804 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_pause_sync()
2822 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_resume_sync()
2832 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_resume_sync()
2855 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_resume_io()
2870 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_resume_io()
2882 struct drbd_resource *resource, in nla_put_drbd_cfg_context() argument
2893 if (nla_put_string(skb, T_ctx_resource_name, resource->name)) in nla_put_drbd_cfg_context()
2915 static struct drbd_connection *the_only_connection(struct drbd_resource *resource) in the_only_connection() argument
2917 struct list_head *connections = &resource->connections; in the_only_connection()
2921 return list_first_entry(&resource->connections, struct drbd_connection, connections); in the_only_connection()
2927 struct drbd_resource *resource = device->resource; in nla_put_status_info() local
2951 if (nla_put_drbd_cfg_context(skb, resource, the_only_connection(resource), device)) in nla_put_status_info()
2954 if (res_opts_to_skb(skb, &device->resource->res_opts, exclude_sensitive)) in nla_put_status_info()
3073 struct drbd_resource *resource = NULL; in get_one_status() local
3105 resource = pos; in get_one_status()
3109 resource = pos; in get_one_status()
3113 if (resource) { in get_one_status()
3115 device = idr_get_next(&resource->devices, &volume); in get_one_status()
3119 pos = list_entry_rcu(resource->resources.next, in get_one_status()
3129 resource = pos; in get_one_status()
3148 connection = the_only_connection(resource); in get_one_status()
3149 if (nla_put_drbd_cfg_context(skb, resource, connection, NULL)) in get_one_status()
3162 D_ASSERT(device, device->resource == resource); in get_one_status()
3180 cb->args[1] = (pos == resource) ? volume + 1 : 0; in get_one_status()
3202 struct drbd_resource *resource; in drbd_adm_get_status_all() local
3233 resource = drbd_find_resource(resource_name); in drbd_adm_get_status_all()
3234 if (!resource) in drbd_adm_get_status_all()
3237 kref_put(&resource->kref, drbd_destroy_resource); /* get_one_status() revalidates the resource */ in drbd_adm_get_status_all()
3241 cb->args[0] = (long)resource; in drbd_adm_get_status_all()
3243 cb->args[2] = (long)resource; in drbd_adm_get_status_all()
3303 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_start_ov()
3316 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_start_ov()
3349 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_new_c_uuid()
3382 spin_lock_irq(&device->resource->req_lock); in drbd_adm_new_c_uuid()
3385 spin_unlock_irq(&device->resource->req_lock); in drbd_adm_new_c_uuid()
3394 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_new_c_uuid()
3442 if (adm_ctx.resource) { in drbd_adm_new_resource()
3491 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_new_minor()
3493 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_new_minor()
3525 mutex_lock(&adm_ctx.resource->adm_mutex); in drbd_adm_del_minor()
3527 mutex_unlock(&adm_ctx.resource->adm_mutex); in drbd_adm_del_minor()
3533 static int adm_del_resource(struct drbd_resource *resource) in adm_del_resource() argument
3537 for_each_connection(connection, resource) { in adm_del_resource()
3541 if (!idr_is_empty(&resource->devices)) in adm_del_resource()
3544 list_del_rcu(&resource->resources); in adm_del_resource()
3547 list_for_each_entry(connection, &resource->connections, connections) in adm_del_resource()
3550 drbd_free_resource(resource); in adm_del_resource()
3557 struct drbd_resource *resource; in drbd_adm_down() local
3569 resource = adm_ctx.resource; in drbd_adm_down()
3570 mutex_lock(&resource->adm_mutex); in drbd_adm_down()
3572 for_each_connection(connection, resource) { in drbd_adm_down()
3591 idr_for_each_entry(&resource->devices, device, i) { in drbd_adm_down()
3600 idr_for_each_entry(&resource->devices, device, i) { in drbd_adm_down()
3609 retcode = adm_del_resource(resource); in drbd_adm_down()
3611 mutex_unlock(&resource->adm_mutex); in drbd_adm_down()
3620 struct drbd_resource *resource; in drbd_adm_del_resource() local
3628 resource = adm_ctx.resource; in drbd_adm_del_resource()
3630 mutex_lock(&resource->adm_mutex); in drbd_adm_del_resource()
3631 retcode = adm_del_resource(resource); in drbd_adm_del_resource()
3632 mutex_unlock(&resource->adm_mutex); in drbd_adm_del_resource()