Lines Matching refs:newsk

2275  *	Caller must unlock socket even in error path (bh_unlock_sock(newsk))
2282 struct sock *newsk;
2284 newsk = sk_prot_alloc(prot, priority, sk->sk_family);
2285 if (!newsk)
2288 sock_copy(newsk, sk);
2290 newsk->sk_prot_creator = prot;
2293 if (likely(newsk->sk_net_refcnt)) {
2294 get_net_track(sock_net(newsk), &newsk->ns_tracker, priority);
2295 sock_inuse_add(sock_net(newsk), 1);
2302 __netns_tracker_alloc(sock_net(newsk), &newsk->ns_tracker,
2305 sk_node_init(&newsk->sk_node);
2306 sock_lock_init(newsk);
2307 bh_lock_sock(newsk);
2308 newsk->sk_backlog.head = newsk->sk_backlog.tail = NULL;
2309 newsk->sk_backlog.len = 0;
2311 atomic_set(&newsk->sk_rmem_alloc, 0);
2314 refcount_set(&newsk->sk_wmem_alloc, 1);
2316 atomic_set(&newsk->sk_omem_alloc, 0);
2317 sk_init_common(newsk);
2319 newsk->sk_dst_cache = NULL;
2320 newsk->sk_dst_pending_confirm = 0;
2321 newsk->sk_wmem_queued = 0;
2322 newsk->sk_forward_alloc = 0;
2323 newsk->sk_reserved_mem = 0;
2324 atomic_set(&newsk->sk_drops, 0);
2325 newsk->sk_send_head = NULL;
2326 newsk->sk_userlocks = sk->sk_userlocks & ~SOCK_BINDPORT_LOCK;
2327 atomic_set(&newsk->sk_zckey, 0);
2329 sock_reset_flag(newsk, SOCK_DONE);
2332 newsk->sk_memcg = NULL;
2334 cgroup_sk_clone(&newsk->sk_cgrp_data);
2343 is_charged = sk_filter_charge(newsk, filter);
2344 RCU_INIT_POINTER(newsk->sk_filter, filter);
2347 if (unlikely(!is_charged || xfrm_sk_clone_policy(newsk, sk))) {
2353 RCU_INIT_POINTER(newsk->sk_filter, NULL);
2354 sk_free_unlock_clone(newsk);
2355 newsk = NULL;
2358 RCU_INIT_POINTER(newsk->sk_reuseport_cb, NULL);
2360 if (bpf_sk_storage_clone(sk, newsk)) {
2361 sk_free_unlock_clone(newsk);
2362 newsk = NULL;
2369 if (sk_user_data_is_nocopy(newsk))
2370 newsk->sk_user_data = NULL;
2372 newsk->sk_err = 0;
2373 newsk->sk_err_soft = 0;
2374 newsk->sk_priority = 0;
2375 newsk->sk_incoming_cpu = raw_smp_processor_id();
2381 refcount_set(&newsk->sk_refcnt, 2);
2383 sk_set_socket(newsk, NULL);
2384 sk_tx_queue_clear(newsk);
2385 RCU_INIT_POINTER(newsk->sk_wq, NULL);
2387 if (newsk->sk_prot->sockets_allocated)
2388 sk_sockets_allocated_inc(newsk);
2390 if (sock_needs_netstamp(sk) && newsk->sk_flags & SK_FLAGS_TIMESTAMP)
2393 return newsk;