Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion criu/files.c
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,7 @@ int collect_fd(int pid, FdinfoEntry *e, struct rst_info *rst_info, bool fake)
if (!collect_fd_to(pid, e, rst_info, fdesc, fake, false))
return -1;

snprintf(inh_id, sizeof(inh_id), "fd[%d]", e->fd);
if (inherit_fd_lookup_id(inh_id) < 0) {
fdesc->fds_inherited = FDIH_UNINHERITED;
} else if (fdesc->fds_inherited == FDIH_UNKNOWN) {
Expand Down Expand Up @@ -1116,7 +1117,7 @@ int setup_and_serve_out(struct fdinfo_list_entry *fle, int new_fd)
struct file_desc *d = fle->desc;
pid_t pid = fle->pid;

if (reopen_fd_as(fle->fe->fd, new_fd))
if (reopen_fd_as_nocheck(fle->fe->fd, new_fd))
return -1;

if (fcntl(fle->fe->fd, F_SETFD, fle->fe->flags) == -1) {
Expand Down
3 changes: 2 additions & 1 deletion criu/pipes.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ static int mark_pipe_master_cb(struct pprep_head *ph)

list_move(&pic->list, &head);
f = file_master(&pic->d);
if (fdinfo_rst_prio(f, fle)) {
/* Pipe that is going to inherit can't be a master */
if (fdinfo_rst_prio(f, fle) || p->d.fds_inherited >= FDIH_FROM_0) {
p = pic;
fle = f;
}
Expand Down