Lines Matching full:connection
216 nla_len(adm_ctx->my_addr) > sizeof(adm_ctx->connection->my_addr)) || in drbd_adm_prepare()
218 nla_len(adm_ctx->peer_addr) > sizeof(adm_ctx->connection->peer_addr))) { in drbd_adm_prepare()
258 adm_ctx->connection = conn_get_by_addrs(nla_data(adm_ctx->my_addr), in drbd_adm_prepare()
262 if (!adm_ctx->connection) { in drbd_adm_prepare()
263 drbd_msg_put_info(adm_ctx->reply_skb, "unknown connection"); in drbd_adm_prepare()
290 : adm_ctx->connection ? adm_ctx->connection->resource : NULL; in drbd_adm_prepare()
310 if (adm_ctx->connection) { in drbd_adm_finish()
311 kref_put(&adm_ctx->connection->kref, &drbd_destroy_connection); in drbd_adm_finish()
312 adm_ctx->connection = NULL; in drbd_adm_finish()
327 static void setup_khelper_env(struct drbd_connection *connection, char **envp) in setup_khelper_env() argument
332 if (connection->my_addr_len == 0 || connection->peer_addr_len == 0) in setup_khelper_env()
335 switch (((struct sockaddr *)&connection->peer_addr)->sa_family) { in setup_khelper_env()
339 &((struct sockaddr_in6 *)&connection->peer_addr)->sin6_addr); in setup_khelper_env()
344 &((struct sockaddr_in *)&connection->peer_addr)->sin_addr); in setup_khelper_env()
349 &((struct sockaddr_in *)&connection->peer_addr)->sin_addr); in setup_khelper_env()
364 struct drbd_connection *connection = first_peer_device(device)->connection; in drbd_khelper() local
368 if (current == connection->worker.task) in drbd_khelper()
369 set_bit(CALLBACK_PENDING, &connection->flags); in drbd_khelper()
372 setup_khelper_env(connection, envp); in drbd_khelper()
382 notify_helper(NOTIFY_CALL, device, connection, cmd, 0); in drbd_khelper()
395 notify_helper(NOTIFY_RESPONSE, device, connection, cmd, ret); in drbd_khelper()
397 if (current == connection->worker.task) in drbd_khelper()
398 clear_bit(CALLBACK_PENDING, &connection->flags); in drbd_khelper()
406 enum drbd_peer_state conn_khelper(struct drbd_connection *connection, char *cmd) in conn_khelper() argument
414 char *resource_name = connection->resource->name; in conn_khelper()
418 setup_khelper_env(connection, envp); in conn_khelper()
419 conn_md_sync(connection); in conn_khelper()
421 drbd_info(connection, "helper command: %s %s %s\n", drbd_usermode_helper, cmd, resource_name); in conn_khelper()
423 notify_helper(NOTIFY_CALL, NULL, connection, cmd, 0); in conn_khelper()
427 drbd_warn(connection, "helper command: %s %s %s exit code %u (0x%x)\n", in conn_khelper()
431 drbd_info(connection, "helper command: %s %s %s exit code %u (0x%x)\n", in conn_khelper()
435 notify_helper(NOTIFY_RESPONSE, NULL, connection, cmd, ret); in conn_khelper()
443 static enum drbd_fencing_p highest_fencing_policy(struct drbd_connection *connection) in highest_fencing_policy() argument
450 idr_for_each_entry(&connection->peer_devices, peer_device, vnr) { in highest_fencing_policy()
469 bool conn_try_outdate_peer(struct drbd_connection *connection) in conn_try_outdate_peer() argument
471 struct drbd_resource * const resource = connection->resource; in conn_try_outdate_peer()
480 if (connection->cstate >= C_WF_REPORT_PARAMS) { in conn_try_outdate_peer()
481 drbd_err(connection, "Expected cstate < C_WF_REPORT_PARAMS\n"); in conn_try_outdate_peer()
486 connect_cnt = connection->connect_cnt; in conn_try_outdate_peer()
489 fp = highest_fencing_policy(connection); in conn_try_outdate_peer()
492 drbd_warn(connection, "Not fencing peer, I'm not even Consistent myself.\n"); in conn_try_outdate_peer()
494 if (connection->cstate < C_WF_REPORT_PARAMS) { in conn_try_outdate_peer()
495 _conn_request_state(connection, in conn_try_outdate_peer()
503 _tl_restart(connection, CONNECTION_LOST_WHILE_PENDING); in conn_try_outdate_peer()
505 /* Else: in case we raced with a connection handshake, in conn_try_outdate_peer()
519 r = conn_khelper(connection, "fence-peer"); in conn_try_outdate_peer()
533 if (conn_highest_disk(connection) == D_UP_TO_DATE) { in conn_try_outdate_peer()
546 drbd_warn(connection, "Peer is primary, outdating myself.\n"); in conn_try_outdate_peer()
554 drbd_err(connection, "fence-peer() = 7 && fencing != Stonith !!!\n"); in conn_try_outdate_peer()
561 drbd_err(connection, "fence-peer helper broken, returned %d\n", (r>>8)&0xff); in conn_try_outdate_peer()
565 drbd_info(connection, "fence-peer helper returned %d (%s)\n", in conn_try_outdate_peer()
569 conn_request_state(connection, mask, val, CS_VERBOSE); in conn_try_outdate_peer()
570 here, because we might were able to re-establish the connection in the in conn_try_outdate_peer()
573 if (connection->cstate < C_WF_REPORT_PARAMS && !test_bit(STATE_SENT, &connection->flags)) { in conn_try_outdate_peer()
574 if (connection->connect_cnt != connect_cnt) in conn_try_outdate_peer()
575 /* In case the connection was established and droped in conn_try_outdate_peer()
577 drbd_info(connection, "Ignoring fence-peer exit code\n"); in conn_try_outdate_peer()
579 _conn_request_state(connection, mask, val, CS_VERBOSE); in conn_try_outdate_peer()
583 return conn_highest_pdsk(connection) <= D_OUTDATED; in conn_try_outdate_peer()
588 struct drbd_connection *connection = (struct drbd_connection *)data; in _try_outdate_peer_async() local
590 conn_try_outdate_peer(connection); in _try_outdate_peer_async()
592 kref_put(&connection->kref, drbd_destroy_connection); in _try_outdate_peer_async()
596 void conn_try_outdate_peer_async(struct drbd_connection *connection) in conn_try_outdate_peer_async() argument
600 kref_get(&connection->kref); in conn_try_outdate_peer_async()
607 opa = kthread_run(_try_outdate_peer_async, connection, "drbd_async_h"); in conn_try_outdate_peer_async()
609 drbd_err(connection, "out of mem, failed to invoke fence-peer helper\n"); in conn_try_outdate_peer_async()
610 kref_put(&connection->kref, drbd_destroy_connection); in conn_try_outdate_peer_async()
618 struct drbd_connection *const connection = peer_device ? peer_device->connection : NULL; in drbd_set_role() local
627 struct drbd_connection *connection; in drbd_set_role() local
632 for_each_connection(connection, device->resource) in drbd_set_role()
633 request_ping(connection); in drbd_set_role()
646 * but now suddenly could establish a connection */ in drbd_set_role()
666 if (conn_try_outdate_peer(connection)) { in drbd_set_role()
676 if (!conn_try_outdate_peer(connection) && force) { in drbd_set_role()
691 nc = rcu_dereference(connection->net_conf); in drbd_set_role()
725 nc = connection->net_conf; in drbd_set_role()
1197 static unsigned int drbd_max_discard_sectors(struct drbd_connection *connection) in drbd_max_discard_sectors() argument
1201 if (connection->agreed_features & DRBD_FF_WSAME) in drbd_max_discard_sectors()
1210 struct drbd_connection *connection = in decide_on_discard_support() local
1211 first_peer_device(device)->connection; in decide_on_discard_support()
1217 if (connection->cstate >= C_CONNECTED && in decide_on_discard_support()
1218 !(connection->agreed_features & DRBD_FF_TRIM)) { in decide_on_discard_support()
1219 drbd_info(connection, in decide_on_discard_support()
1233 q->limits.max_discard_sectors = drbd_max_discard_sectors(connection); in decide_on_discard_support()
1235 drbd_max_discard_sectors(connection); in decide_on_discard_support()
1250 struct drbd_connection *connection = first_peer_device(device)->connection; in fixup_write_zeroes() local
1253 if (connection->agreed_features & DRBD_FF_WZEROES) in fixup_write_zeroes()
1311 if (first_peer_device(device)->connection->agreed_pro_version < 94) in drbd_reconsider_queue_parameters()
1314 else if (first_peer_device(device)->connection->agreed_pro_version == 94) in drbd_reconsider_queue_parameters()
1316 else if (first_peer_device(device)->connection->agreed_pro_version < 100) in drbd_reconsider_queue_parameters()
1340 static void conn_reconfig_start(struct drbd_connection *connection) in conn_reconfig_start() argument
1342 drbd_thread_start(&connection->worker); in conn_reconfig_start()
1343 drbd_flush_workqueue(&connection->sender_work); in conn_reconfig_start()
1347 static void conn_reconfig_done(struct drbd_connection *connection) in conn_reconfig_done() argument
1350 spin_lock_irq(&connection->resource->req_lock); in conn_reconfig_done()
1351 stop_threads = conn_all_vols_unconf(connection) && in conn_reconfig_done()
1352 connection->cstate == C_STANDALONE; in conn_reconfig_done()
1353 spin_unlock_irq(&connection->resource->req_lock); in conn_reconfig_done()
1357 drbd_thread_stop(&connection->receiver); in conn_reconfig_done()
1358 drbd_thread_stop(&connection->worker); in conn_reconfig_done()
1711 struct drbd_connection *connection; in drbd_adm_attach() local
1734 connection = peer_device->connection; in drbd_adm_attach()
1735 conn_reconfig_start(connection); in drbd_adm_attach()
1796 nc = rcu_dereference(connection->net_conf); in drbd_adm_attach()
1886 drbd_flush_workqueue(&connection->sender_work); in drbd_adm_attach()
1989 * Now, if I had no connection before that crash in drbd_adm_attach()
2101 conn_reconfig_done(connection); in drbd_adm_attach()
2112 conn_reconfig_done(connection); in drbd_adm_attach()
2173 static bool conn_resync_running(struct drbd_connection *connection) in conn_resync_running() argument
2180 idr_for_each_entry(&connection->peer_devices, peer_device, vnr) { in conn_resync_running()
2195 static bool conn_ov_running(struct drbd_connection *connection) in conn_ov_running() argument
2202 idr_for_each_entry(&connection->peer_devices, peer_device, vnr) { in conn_ov_running()
2216 _check_net_options(struct drbd_connection *connection, struct net_conf *old_net_conf, struct net_co… in _check_net_options() argument
2221 …if (old_net_conf && connection->cstate == C_WF_REPORT_PARAMS && connection->agreed_pro_version < 1… in _check_net_options()
2233 conn_highest_role(connection) == R_PRIMARY && in _check_net_options()
2234 conn_highest_peer(connection) == R_PRIMARY) in _check_net_options()
2241 idr_for_each_entry(&connection->peer_devices, peer_device, i) { in _check_net_options()
2260 check_net_options(struct drbd_connection *connection, struct net_conf *new_net_conf) in check_net_options() argument
2267 rv = _check_net_options(connection, rcu_dereference(connection->net_conf), new_net_conf); in check_net_options()
2270 /* connection->peer_devices protected by genl_lock() here */ in check_net_options()
2271 idr_for_each_entry(&connection->peer_devices, peer_device, i) { in check_net_options()
2345 struct drbd_connection *connection; in drbd_adm_net_opts() local
2358 connection = adm_ctx.connection; in drbd_adm_net_opts()
2367 conn_reconfig_start(connection); in drbd_adm_net_opts()
2369 mutex_lock(&connection->data.mutex); in drbd_adm_net_opts()
2370 mutex_lock(&connection->resource->conf_update); in drbd_adm_net_opts()
2371 old_net_conf = connection->net_conf; in drbd_adm_net_opts()
2390 retcode = check_net_options(connection, new_net_conf); in drbd_adm_net_opts()
2395 rsr = conn_resync_running(connection); in drbd_adm_net_opts()
2402 ovr = conn_ov_running(connection); in drbd_adm_net_opts()
2412 rcu_assign_pointer(connection->net_conf, new_net_conf); in drbd_adm_net_opts()
2415 crypto_free_shash(connection->csums_tfm); in drbd_adm_net_opts()
2416 connection->csums_tfm = crypto.csums_tfm; in drbd_adm_net_opts()
2420 crypto_free_shash(connection->verify_tfm); in drbd_adm_net_opts()
2421 connection->verify_tfm = crypto.verify_tfm; in drbd_adm_net_opts()
2425 crypto_free_shash(connection->integrity_tfm); in drbd_adm_net_opts()
2426 connection->integrity_tfm = crypto.integrity_tfm; in drbd_adm_net_opts()
2427 if (connection->cstate >= C_WF_REPORT_PARAMS && connection->agreed_pro_version >= 100) in drbd_adm_net_opts()
2428 /* Do this without trying to take connection->data.mutex again. */ in drbd_adm_net_opts()
2429 __drbd_send_protocol(connection, P_PROTOCOL_UPDATE); in drbd_adm_net_opts()
2431 crypto_free_shash(connection->cram_hmac_tfm); in drbd_adm_net_opts()
2432 connection->cram_hmac_tfm = crypto.cram_hmac_tfm; in drbd_adm_net_opts()
2434 mutex_unlock(&connection->resource->conf_update); in drbd_adm_net_opts()
2435 mutex_unlock(&connection->data.mutex); in drbd_adm_net_opts()
2438 if (connection->cstate >= C_WF_REPORT_PARAMS) { in drbd_adm_net_opts()
2442 idr_for_each_entry(&connection->peer_devices, peer_device, vnr) in drbd_adm_net_opts()
2449 mutex_unlock(&connection->resource->conf_update); in drbd_adm_net_opts()
2450 mutex_unlock(&connection->data.mutex); in drbd_adm_net_opts()
2454 conn_reconfig_done(connection); in drbd_adm_net_opts()
2463 struct drbd_connection *connection) in connection_to_info() argument
2465 info->conn_connection_state = connection->cstate; in connection_to_info()
2466 info->conn_role = conn_highest_peer(connection); in connection_to_info()
2492 struct drbd_connection *connection; in drbd_adm_connect() local
2505 drbd_msg_put_info(adm_ctx.reply_skb, "connection endpoint(s) missing"); in drbd_adm_connect()
2514 for_each_connection(connection, resource) { in drbd_adm_connect()
2515 if (nla_len(adm_ctx.my_addr) == connection->my_addr_len && in drbd_adm_connect()
2516 !memcmp(nla_data(adm_ctx.my_addr), &connection->my_addr, in drbd_adm_connect()
2517 connection->my_addr_len)) { in drbd_adm_connect()
2522 if (nla_len(adm_ctx.peer_addr) == connection->peer_addr_len && in drbd_adm_connect()
2523 !memcmp(nla_data(adm_ctx.peer_addr), &connection->peer_addr, in drbd_adm_connect()
2524 connection->peer_addr_len)) { in drbd_adm_connect()
2532 connection = first_connection(adm_ctx.resource); in drbd_adm_connect()
2533 conn_reconfig_start(connection); in drbd_adm_connect()
2535 if (connection->cstate > C_STANDALONE) { in drbd_adm_connect()
2556 retcode = check_net_options(connection, new_net_conf); in drbd_adm_connect()
2566 drbd_flush_workqueue(&connection->sender_work); in drbd_adm_connect()
2569 old_net_conf = connection->net_conf; in drbd_adm_connect()
2575 rcu_assign_pointer(connection->net_conf, new_net_conf); in drbd_adm_connect()
2577 conn_free_crypto(connection); in drbd_adm_connect()
2578 connection->cram_hmac_tfm = crypto.cram_hmac_tfm; in drbd_adm_connect()
2579 connection->integrity_tfm = crypto.integrity_tfm; in drbd_adm_connect()
2580 connection->csums_tfm = crypto.csums_tfm; in drbd_adm_connect()
2581 connection->verify_tfm = crypto.verify_tfm; in drbd_adm_connect()
2583 connection->my_addr_len = nla_len(adm_ctx.my_addr); in drbd_adm_connect()
2584 memcpy(&connection->my_addr, nla_data(adm_ctx.my_addr), connection->my_addr_len); in drbd_adm_connect()
2585 connection->peer_addr_len = nla_len(adm_ctx.peer_addr); in drbd_adm_connect()
2586 memcpy(&connection->peer_addr, nla_data(adm_ctx.peer_addr), connection->peer_addr_len); in drbd_adm_connect()
2588 idr_for_each_entry(&connection->peer_devices, peer_device, i) { in drbd_adm_connect()
2592 connection_to_info(&connection_info, connection); in drbd_adm_connect()
2595 notify_connection_state(NULL, 0, connection, &connection_info, NOTIFY_CREATE | flags); in drbd_adm_connect()
2596 idr_for_each_entry(&connection->peer_devices, peer_device, i) { in drbd_adm_connect()
2607 idr_for_each_entry(&connection->peer_devices, peer_device, i) { in drbd_adm_connect()
2614 rv = conn_request_state(connection, NS(conn, C_UNCONNECTED), CS_VERBOSE); in drbd_adm_connect()
2616 conn_reconfig_done(connection); in drbd_adm_connect()
2625 conn_reconfig_done(connection); in drbd_adm_connect()
2632 static enum drbd_state_rv conn_try_disconnect(struct drbd_connection *connection, bool force) in conn_try_disconnect() argument
2638 rv = conn_request_state(connection, NS(conn, C_DISCONNECTING), in conn_try_disconnect()
2648 rv = conn_request_state(connection, NS2(conn, C_DISCONNECTING, pdsk, D_OUTDATED), 0); in conn_try_disconnect()
2650 if (rv == SS_OUTDATE_WO_CONN) /* lost connection before graceful disconnect succeeded */ in conn_try_disconnect()
2651 rv = conn_request_state(connection, NS(conn, C_DISCONNECTING), CS_VERBOSE); in conn_try_disconnect()
2655 spin_lock_irq(&connection->resource->req_lock); in conn_try_disconnect()
2656 cstate = connection->cstate; in conn_try_disconnect()
2657 spin_unlock_irq(&connection->resource->req_lock); in conn_try_disconnect()
2661 rv = conn_request_state(connection, NS2(conn, C_DISCONNECTING, in conn_try_disconnect()
2664 rv = conn_request_state(connection, NS(conn, C_DISCONNECTING), in conn_try_disconnect()
2678 drbd_thread_stop(&connection->receiver); in conn_try_disconnect()
2686 rv2 = conn_request_state(connection, NS(conn, C_STANDALONE), in conn_try_disconnect()
2689 drbd_err(connection, in conn_try_disconnect()
2693 * NOTIFY_DESTROY events before clearing connection->net_conf. */ in conn_try_disconnect()
2702 struct drbd_connection *connection; in drbd_adm_disconnect() local
2713 connection = adm_ctx.connection; in drbd_adm_disconnect()
2725 rv = conn_try_disconnect(connection, parms.force_disconnect); in drbd_adm_disconnect()
2745 iass = test_bit(RESOLVE_CONFLICTS, &first_peer_device(device)->connection->flags); in resync_after_online_grow()
2802 if (rs.no_resync && first_peer_device(device)->connection->agreed_pro_version < 93) { in drbd_adm_resize()
2952 drbd_flush_workqueue(&first_peer_device(device)->connection->sender_work); in drbd_adm_invalidate()
3029 drbd_flush_workqueue(&first_peer_device(device)->connection->sender_work); in drbd_adm_invalidate_peer()
3129 * lost the replication connection, and are configured in drbd_adm_resume_io()
3131 * So we still don't have a replication connection. in drbd_adm_resume_io()
3153 tl_clear(first_peer_device(device)->connection); in drbd_adm_resume_io()
3155 tl_restart(first_peer_device(device)->connection, FAIL_FROZEN_DISK_IO); in drbd_adm_resume_io()
3171 struct drbd_connection *connection, in nla_put_drbd_cfg_context() argument
3183 if (connection) { in nla_put_drbd_cfg_context()
3184 if (connection->my_addr_len && in nla_put_drbd_cfg_context()
3185 nla_put(skb, T_ctx_my_addr, connection->my_addr_len, &connection->my_addr)) in nla_put_drbd_cfg_context()
3187 if (connection->peer_addr_len && in nla_put_drbd_cfg_context()
3188 nla_put(skb, T_ctx_peer_addr, connection->peer_addr_len, &connection->peer_addr)) in nla_put_drbd_cfg_context()
3424 struct drbd_connection *connection; in drbd_adm_dump_connections() local
3457 for_each_connection_rcu(connection, resource) in drbd_adm_dump_connections()
3458 if (connection == (struct drbd_connection *)cb->args[2]) in drbd_adm_dump_connections()
3460 /* connection was probably deleted */ in drbd_adm_dump_connections()
3463 connection = list_entry(&resource->connections, struct drbd_connection, connections); in drbd_adm_dump_connections()
3466 list_for_each_entry_continue_rcu(connection, &resource->connections, connections) { in drbd_adm_dump_connections()
3467 if (!has_net_conf(connection)) in drbd_adm_dump_connections()
3507 err = nla_put_drbd_cfg_context(skb, resource, connection, NULL); in drbd_adm_dump_connections()
3510 net_conf = rcu_dereference(connection->net_conf); in drbd_adm_dump_connections()
3516 connection_to_info(&connection_info, connection); in drbd_adm_dump_connections()
3520 connection_statistics.conn_congested = test_bit(NET_CONGESTED, &connection->flags); in drbd_adm_dump_connections()
3524 cb->args[2] = (long)connection; in drbd_adm_dump_connections()
3630 if (!has_net_conf(peer_device->connection)) in drbd_adm_dump_peer_devices()
3651 err = nla_put_drbd_cfg_context(skb, device->resource, peer_device->connection, device); in drbd_adm_dump_peer_devices()
3675 * Return the connection of @resource if @resource has exactly one connection.
3711 /* We need to add connection name and volume number information still. in nla_put_status_info()
3729 nc = rcu_dereference(first_peer_device(device)->connection->net_conf); in nla_put_status_info()
3844 * connection = "first connection of resource or undefined"; in get_one_status()
3906 /* This is a connection without a single volume. in get_one_status()
3909 struct drbd_connection *connection; in get_one_status() local
3913 connection = the_only_connection(resource); in get_one_status()
3914 if (nla_put_drbd_cfg_context(skb, resource, connection, NULL)) in get_one_status()
3916 if (connection) { in get_one_status()
3919 nc = rcu_dereference(connection->net_conf); in get_one_status()
4005 * only dump this connection. */ in drbd_adm_get_status_all()
4124 first_peer_device(device)->connection->agreed_pro_version >= 90 && in drbd_adm_new_c_uuid()
4193 struct drbd_connection *connection; in drbd_adm_new_resource() local
4228 connection = conn_create(adm_ctx.resource_name, &res_opts); in drbd_adm_new_resource()
4231 if (connection) { in drbd_adm_new_resource()
4235 resource_to_info(&resource_info, connection->resource); in drbd_adm_new_resource()
4236 notify_resource_state(NULL, 0, connection->resource, in drbd_adm_new_resource()
4278 * that first_peer_device(device)->connection and device->vnr match the request. */ in drbd_adm_new_minor()
4297 if (!has_net_conf(peer_device->connection)) in drbd_adm_new_minor()
4309 if (!has_net_conf(peer_device->connection)) in drbd_adm_new_minor()
4333 struct drbd_connection *connection = in adm_del_minor() local
4342 if (get_t_state(&connection->worker) == RUNNING) in adm_del_minor()
4343 drbd_flush_workqueue(&connection->sender_work); in adm_del_minor()
4347 if (!has_net_conf(peer_device->connection)) in adm_del_minor()
4382 struct drbd_connection *connection; in adm_del_resource() local
4384 for_each_connection(connection, resource) { in adm_del_resource()
4385 if (connection->cstate > C_STANDALONE) in adm_del_resource()
4403 list_for_each_entry(connection, &resource->connections, connections) in adm_del_resource()
4404 drbd_thread_stop(&connection->worker); in adm_del_resource()
4414 struct drbd_connection *connection; in drbd_adm_down() local
4428 for_each_connection(connection, resource) { in drbd_adm_down()
4431 idr_for_each_entry(&connection->peer_devices, peer_device, i) { in drbd_adm_down()
4439 retcode = conn_try_disconnect(connection, 0); in drbd_adm_down()
4645 struct drbd_connection *connection, in notify_connection_state() argument
4669 if (nla_put_drbd_cfg_context(skb, connection->resource, connection, NULL) || in notify_connection_state()
4674 connection_statistics.conn_congested = test_bit(NET_CONGESTED, &connection->flags); in notify_connection_state()
4688 drbd_err(connection, "Error %d while broadcasting event. Event seq:%u\n", in notify_connection_state()
4720 if (nla_put_drbd_cfg_context(skb, resource, peer_device->connection, peer_device->device) || in notify_peer_device_state()
4745 struct drbd_device *device, struct drbd_connection *connection, in notify_helper() argument
4748 struct drbd_resource *resource = device ? device->resource : connection->resource; in notify_helper()
4771 if (nla_put_drbd_cfg_context(skb, resource, connection, device) || in notify_helper()