2024年2月9日发(作者:)
1304
1305 #ifdef CONFIG_MODULES1312 if (rcu_access_pointer(net_families[family]) == NULL)1313 request_module("net-pf-%d", family);1314 #endif1315
1316 rcu_read_lock();1317 pf = rcu_dereference(net_families[family]);1318 err = -EAFNOSUPPORT;1319 if (!pf)1320 goto out_release;1321
1326 if (!try_module_get(pf->owner))1327 goto out_release;1328
1330 rcu_read_unlock();1331
1332 err = pf->create(net, sock, protocol, kern);1333 if (err < 0)1334 goto out_module_put;1335
1340 if (!try_module_get(sock->ops->owner))1341 goto out_module_busy;1342
1347 module_put(pf->owner);1348 err = security_socket_post_create(sock, family, type, protocol, kern);1349 if (err)1350 goto out_sock_release;1351 *res = sock;1352
1353 return 0;1354
1355 out_module_busy:1356 err = -EAFNOSUPPORT;1357 out_module_put:1358 sock->ops = NULL;1359 module_put(pf->owner);1360 out_sock_release:1361 sock_release(sock);


发布评论