Commit 87be218c authored by Stanislav Kinsburskiy's avatar Stanislav Kinsburskiy Committed by Pavel Emelyanov

files: new dup_fdinfo() and dup_fle() helpers introduced

This helpers will be used by autofs restore to create temporary pipe
descriptors.
Signed-off-by: 's avatarStanislav Kinsburskiy <skinsbursky@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 7e12d2dd
......@@ -661,6 +661,35 @@ static int collect_fd(int pid, FdinfoEntry *e, struct rst_info *rst_info)
return 0;
}
FdinfoEntry *dup_fdinfo(FdinfoEntry *old, int fd, unsigned flags)
{
FdinfoEntry *e;
e = shmalloc(sizeof(*e));
if (!e)
return NULL;
fdinfo_entry__init(e);
e->id = old->id;
e->type = old->type;
e->fd = fd;
e->flags = flags;
return e;
}
int dup_fle(struct pstree_item *task, struct fdinfo_list_entry *ple,
int fd, unsigned flags)
{
FdinfoEntry *e;
e = dup_fdinfo(ple->fe, fd, flags);
if (!e)
return -1;
return collect_fd(task->pid.virt, e, rsti(task));
}
int prepare_ctl_tty(int pid, struct rst_info *rst_info, u32 ctl_tty_id)
{
FdinfoEntry *e;
......
......@@ -212,4 +212,8 @@ extern char *external_lookup_by_key(char *id);
extern bool inherited_fd(struct file_desc *, int *fdp);
extern FdinfoEntry *dup_fdinfo(FdinfoEntry *old, int fd, unsigned flags);
int dup_fle(struct pstree_item *task, struct fdinfo_list_entry *ple,
int fd, unsigned flags);
#endif /* __CR_FILES_H__ */
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