Commit e7e9ece1 authored by Pavel Emelyanov's avatar Pavel Emelyanov

files: don't create a transport socket for each file ++

The same thing as in e46ba886 exists in pipes, unix sockets and
ttys, so let's re-use the service transport fd there as well.
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 54253380
...@@ -301,11 +301,7 @@ static int open_pipe(struct file_desc *d) ...@@ -301,11 +301,7 @@ static int open_pipe(struct file_desc *d)
if (ret) if (ret)
return -1; return -1;
sock = socket(PF_UNIX, SOCK_DGRAM, 0); sock = get_service_fd(TRANSPORT_FD_OFF);
if (sock < 0) {
pr_perror("Can't create socket");
return -1;
}
list_for_each_entry(p, &pi->pipe_list, pipe_list) { list_for_each_entry(p, &pi->pipe_list, pipe_list) {
struct fdinfo_list_entry *fle; struct fdinfo_list_entry *fle;
...@@ -320,8 +316,6 @@ static int open_pipe(struct file_desc *d) ...@@ -320,8 +316,6 @@ static int open_pipe(struct file_desc *d)
} }
} }
close(sock);
close(pfd[!(pi->pe->flags & O_WRONLY)]); close(pfd[!(pi->pe->flags & O_WRONLY)]);
tmp = pfd[pi->pe->flags & O_WRONLY]; tmp = pfd[pi->pe->flags & O_WRONLY];
......
...@@ -1080,11 +1080,7 @@ static int open_unixsk_pair_master(struct unix_sk_info *ui) ...@@ -1080,11 +1080,7 @@ static int open_unixsk_pair_master(struct unix_sk_info *ui)
if (shutdown_unix_sk(sk[0], ui)) if (shutdown_unix_sk(sk[0], ui))
return -1; return -1;
tsk = socket(PF_UNIX, SOCK_DGRAM, 0); tsk = get_service_fd(TRANSPORT_FD_OFF);
if (tsk < 0) {
pr_perror("Can't make transport socket");
return -1;
}
fle = file_master(&peer->d); fle = file_master(&peer->d);
if (send_fd_to_peer(sk[1], fle, tsk)) { if (send_fd_to_peer(sk[1], fle, tsk)) {
...@@ -1092,7 +1088,6 @@ static int open_unixsk_pair_master(struct unix_sk_info *ui) ...@@ -1092,7 +1088,6 @@ static int open_unixsk_pair_master(struct unix_sk_info *ui)
return -1; return -1;
} }
close(tsk);
close(sk[1]); close(sk[1]);
return sk[0]; return sk[0];
......
...@@ -864,11 +864,7 @@ static int pty_open_slaves(struct tty_info *info) ...@@ -864,11 +864,7 @@ static int pty_open_slaves(struct tty_info *info)
struct fdinfo_list_entry *fle; struct fdinfo_list_entry *fle;
struct tty_info *slave; struct tty_info *slave;
sock = socket(PF_UNIX, SOCK_DGRAM, 0); sock = get_service_fd(TRANSPORT_FD_OFF);
if (sock < 0) {
pr_perror("Can't create socket");
goto err;
}
list_for_each_entry(slave, &info->sibling, sibling) { list_for_each_entry(slave, &info->sibling, sibling) {
BUG_ON(tty_is_master(slave)); BUG_ON(tty_is_master(slave));
...@@ -900,7 +896,6 @@ static int pty_open_slaves(struct tty_info *info) ...@@ -900,7 +896,6 @@ static int pty_open_slaves(struct tty_info *info)
err: err:
close_safe(&fd); close_safe(&fd);
close_safe(&sock);
return ret; return ret;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment