Commit 9917c4fe authored by Pavel Emelyanov's avatar Pavel Emelyanov

rst: Compact file-descs collects a bit

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent e03ab6b4
...@@ -122,10 +122,8 @@ static int collect_one_efd(void *obj, ProtobufCMessage *msg) ...@@ -122,10 +122,8 @@ static int collect_one_efd(void *obj, ProtobufCMessage *msg)
struct eventfd_file_info *info = obj; struct eventfd_file_info *info = obj;
info->efe = pb_msg(msg, EventfdFileEntry); info->efe = pb_msg(msg, EventfdFileEntry);
file_desc_add(&info->d, info->efe->id, &eventfd_desc_ops);
pr_info_eventfd("Collected ", info->efe); pr_info_eventfd("Collected ", info->efe);
return file_desc_add(&info->d, info->efe->id, &eventfd_desc_ops);
return 0;
} }
int collect_eventfd(void) int collect_eventfd(void)
......
...@@ -181,10 +181,8 @@ static int collect_one_epoll(void *o, ProtobufCMessage *msg) ...@@ -181,10 +181,8 @@ static int collect_one_epoll(void *o, ProtobufCMessage *msg)
struct eventpoll_file_info *info = o; struct eventpoll_file_info *info = o;
info->efe = pb_msg(msg, EventpollFileEntry); info->efe = pb_msg(msg, EventpollFileEntry);
file_desc_add(&info->d, info->efe->id, &desc_ops);
pr_info_eventpoll("Collected ", info->efe); pr_info_eventpoll("Collected ", info->efe);
return file_desc_add(&info->d, info->efe->id, &desc_ops);
return 0;
} }
int collect_eventpoll(void) int collect_eventpoll(void)
......
...@@ -125,8 +125,6 @@ static int collect_one_fifo(void *o, ProtobufCMessage *base) ...@@ -125,8 +125,6 @@ static int collect_one_fifo(void *o, ProtobufCMessage *base)
pr_info("Collected fifo entry ID %#x PIPE ID %#x\n", pr_info("Collected fifo entry ID %#x PIPE ID %#x\n",
info->fe->id, info->fe->pipe_id); info->fe->id, info->fe->pipe_id);
file_desc_add(&info->d, info->fe->id, &fifo_desc_ops);
/* check who will restore the fifo data */ /* check who will restore the fifo data */
list_for_each_entry(f, &fifo_head, list) list_for_each_entry(f, &fifo_head, list)
if (f->fe->pipe_id == info->fe->pipe_id) if (f->fe->pipe_id == info->fe->pipe_id)
...@@ -140,7 +138,8 @@ static int collect_one_fifo(void *o, ProtobufCMessage *base) ...@@ -140,7 +138,8 @@ static int collect_one_fifo(void *o, ProtobufCMessage *base)
info->restore_data = false; info->restore_data = false;
} }
return 0; return file_desc_add(&info->d, info->fe->id, &fifo_desc_ops);
} }
int collect_fifo(void) int collect_fifo(void)
......
...@@ -556,9 +556,7 @@ static int collect_one_regfile(void *o, ProtobufCMessage *base) ...@@ -556,9 +556,7 @@ static int collect_one_regfile(void *o, ProtobufCMessage *base)
rfi->remap = NULL; rfi->remap = NULL;
pr_info("Collected [%s] ID %#x\n", rfi->path, rfi->rfe->id); pr_info("Collected [%s] ID %#x\n", rfi->path, rfi->rfe->id);
file_desc_add(&rfi->d, rfi->rfe->id, &reg_desc_ops); return file_desc_add(&rfi->d, rfi->rfe->id, &reg_desc_ops);
return 0;
} }
int prepare_shared_reg_files(void) int prepare_shared_reg_files(void)
......
...@@ -53,13 +53,15 @@ int prepare_shared_fdinfo(void) ...@@ -53,13 +53,15 @@ int prepare_shared_fdinfo(void)
return 0; return 0;
} }
void file_desc_add(struct file_desc *d, u32 id, struct file_desc_ops *ops) int file_desc_add(struct file_desc *d, u32 id, struct file_desc_ops *ops)
{ {
d->id = id; d->id = id;
d->ops = ops; d->ops = ops;
INIT_LIST_HEAD(&d->fd_info_head); INIT_LIST_HEAD(&d->fd_info_head);
hlist_add_head(&d->hash, &file_desc_hash[id % FDESC_HASH_SIZE]); hlist_add_head(&d->hash, &file_desc_hash[id % FDESC_HASH_SIZE]);
return 0; /* this is to make tail-calls in collect_one_foo look nice */
} }
struct file_desc *find_file_desc_raw(int type, u32 id) struct file_desc *find_file_desc_raw(int type, u32 id)
......
...@@ -455,10 +455,8 @@ static int collect_one_inotify(void *o, ProtobufCMessage *msg) ...@@ -455,10 +455,8 @@ static int collect_one_inotify(void *o, ProtobufCMessage *msg)
info->ife = pb_msg(msg, InotifyFileEntry); info->ife = pb_msg(msg, InotifyFileEntry);
INIT_LIST_HEAD(&info->marks); INIT_LIST_HEAD(&info->marks);
list_add(&info->list, &inotify_info_head); list_add(&info->list, &inotify_info_head);
file_desc_add(&info->d, info->ife->id, &inotify_desc_ops);
pr_info("Collected id 0x%08x flags 0x%08x\n", info->ife->id, info->ife->flags); pr_info("Collected id 0x%08x flags 0x%08x\n", info->ife->id, info->ife->flags);
return file_desc_add(&info->d, info->ife->id, &inotify_desc_ops);
return 0;
} }
static int collect_one_fanotify(void *o, ProtobufCMessage *msg) static int collect_one_fanotify(void *o, ProtobufCMessage *msg)
...@@ -468,10 +466,8 @@ static int collect_one_fanotify(void *o, ProtobufCMessage *msg) ...@@ -468,10 +466,8 @@ static int collect_one_fanotify(void *o, ProtobufCMessage *msg)
info->ffe = pb_msg(msg, FanotifyFileEntry); info->ffe = pb_msg(msg, FanotifyFileEntry);
INIT_LIST_HEAD(&info->marks); INIT_LIST_HEAD(&info->marks);
list_add(&info->list, &fanotify_info_head); list_add(&info->list, &fanotify_info_head);
file_desc_add(&info->d, info->ffe->id, &fanotify_desc_ops);
pr_info("Collected id 0x%08x flags 0x%08x\n", info->ffe->id, info->ffe->flags); pr_info("Collected id 0x%08x flags 0x%08x\n", info->ffe->id, info->ffe->flags);
return file_desc_add(&info->d, info->ffe->id, &fanotify_desc_ops);
return 0;
} }
static int collect_one_inotify_mark(void *o, ProtobufCMessage *msg) static int collect_one_inotify_mark(void *o, ProtobufCMessage *msg)
......
...@@ -117,7 +117,7 @@ struct parasite_drain_fd; ...@@ -117,7 +117,7 @@ struct parasite_drain_fd;
int dump_task_files_seized(struct parasite_ctl *ctl, struct pstree_item *item, int dump_task_files_seized(struct parasite_ctl *ctl, struct pstree_item *item,
struct parasite_drain_fd *dfds); struct parasite_drain_fd *dfds);
extern void file_desc_add(struct file_desc *d, u32 id, struct file_desc_ops *ops); extern int file_desc_add(struct file_desc *d, u32 id, struct file_desc_ops *ops);
extern struct fdinfo_list_entry *file_master(struct file_desc *d); extern struct fdinfo_list_entry *file_master(struct file_desc *d);
extern struct file_desc *find_file_desc_raw(int type, u32 id); extern struct file_desc *find_file_desc_raw(int type, u32 id);
......
...@@ -293,11 +293,8 @@ static int collect_one_nsfile(void *o, ProtobufCMessage *base) ...@@ -293,11 +293,8 @@ static int collect_one_nsfile(void *o, ProtobufCMessage *base)
struct ns_file_info *nfi = o; struct ns_file_info *nfi = o;
nfi->nfe = pb_msg(base, NsFileEntry); nfi->nfe = pb_msg(base, NsFileEntry);
pr_info("Collected ns file ID %#x NS-ID %#x\n", nfi->nfe->id, nfi->nfe->ns_id); pr_info("Collected ns file ID %#x NS-ID %#x\n", nfi->nfe->id, nfi->nfe->ns_id);
file_desc_add(&nfi->d, nfi->nfe->id, &ns_desc_ops); return file_desc_add(&nfi->d, nfi->nfe->id, &ns_desc_ops);
return 0;
} }
int collect_ns_files(void) int collect_ns_files(void)
......
...@@ -375,8 +375,6 @@ static int collect_one_pipe(void *o, ProtobufCMessage *base) ...@@ -375,8 +375,6 @@ static int collect_one_pipe(void *o, ProtobufCMessage *base)
pr_info("Collected pipe entry ID %#x PIPE ID %#x\n", pr_info("Collected pipe entry ID %#x PIPE ID %#x\n",
pi->pe->id, pi->pe->pipe_id); pi->pe->id, pi->pe->pipe_id);
file_desc_add(&pi->d, pi->pe->id, &pipe_desc_ops);
list_for_each_entry(tmp, &pipes, list) list_for_each_entry(tmp, &pipes, list)
if (pi->pe->pipe_id == tmp->pe->pipe_id) if (pi->pe->pipe_id == tmp->pe->pipe_id)
break; break;
...@@ -387,8 +385,8 @@ static int collect_one_pipe(void *o, ProtobufCMessage *base) ...@@ -387,8 +385,8 @@ static int collect_one_pipe(void *o, ProtobufCMessage *base)
list_add(&pi->pipe_list, &tmp->pipe_list); list_add(&pi->pipe_list, &tmp->pipe_list);
list_add_tail(&pi->list, &pipes); list_add_tail(&pi->list, &pipes);
return file_desc_add(&pi->d, pi->pe->id, &pipe_desc_ops);
return 0;
} }
int collect_pipes(void) int collect_pipes(void)
......
...@@ -117,9 +117,7 @@ static int collect_one_sigfd(void *o, ProtobufCMessage *msg) ...@@ -117,9 +117,7 @@ static int collect_one_sigfd(void *o, ProtobufCMessage *msg)
struct signalfd_info *info = o; struct signalfd_info *info = o;
info->sfe = pb_msg(msg, SignalfdEntry); info->sfe = pb_msg(msg, SignalfdEntry);
file_desc_add(&info->d, info->sfe->id, &signalfd_desc_ops); return file_desc_add(&info->d, info->sfe->id, &signalfd_desc_ops);
return 0;
} }
int collect_signalfd(void) int collect_signalfd(void)
......
...@@ -386,7 +386,6 @@ static int collect_one_inetsk(void *o, ProtobufCMessage *base) ...@@ -386,7 +386,6 @@ static int collect_one_inetsk(void *o, ProtobufCMessage *base)
struct inet_sk_info *ii = o; struct inet_sk_info *ii = o;
ii->ie = pb_msg(base, InetSkEntry); ii->ie = pb_msg(base, InetSkEntry);
file_desc_add(&ii->d, ii->ie->id, &inet_desc_ops);
if (tcp_connection(ii->ie)) if (tcp_connection(ii->ie))
tcp_locked_conn_add(ii); tcp_locked_conn_add(ii);
...@@ -399,7 +398,7 @@ static int collect_one_inetsk(void *o, ProtobufCMessage *base) ...@@ -399,7 +398,7 @@ static int collect_one_inetsk(void *o, ProtobufCMessage *base)
if (ii->port == NULL) if (ii->port == NULL)
return -1; return -1;
return 0; return file_desc_add(&ii->d, ii->ie->id, &inet_desc_ops);
} }
int collect_inet_sockets(void) int collect_inet_sockets(void)
......
...@@ -231,9 +231,7 @@ static int collect_one_netlink_sk(void *o, ProtobufCMessage *base) ...@@ -231,9 +231,7 @@ static int collect_one_netlink_sk(void *o, ProtobufCMessage *base)
struct netlink_sock_info *si = o; struct netlink_sock_info *si = o;
si->nse = pb_msg(base, NetlinkSkEntry); si->nse = pb_msg(base, NetlinkSkEntry);
file_desc_add(&si->d, si->nse->id, &netlink_sock_desc_ops); return file_desc_add(&si->d, si->nse->id, &netlink_sock_desc_ops);
return 0;
} }
int collect_netlink_sockets(void) int collect_netlink_sockets(void)
......
...@@ -496,9 +496,7 @@ static int collect_one_packet_sk(void *o, ProtobufCMessage *base) ...@@ -496,9 +496,7 @@ static int collect_one_packet_sk(void *o, ProtobufCMessage *base)
struct packet_sock_info *si = o; struct packet_sock_info *si = o;
si->pse = pb_msg(base, PacketSockEntry); si->pse = pb_msg(base, PacketSockEntry);
file_desc_add(&si->d, si->pse->id, &packet_sock_desc_ops); return file_desc_add(&si->d, si->pse->id, &packet_sock_desc_ops);
return 0;
} }
int collect_packet_sockets(void) int collect_packet_sockets(void)
......
...@@ -822,10 +822,8 @@ static int collect_one_unixsk(void *o, ProtobufCMessage *base) ...@@ -822,10 +822,8 @@ static int collect_one_unixsk(void *o, ProtobufCMessage *base)
pr_info(" `- Got %#x peer %#x (name %s)\n", pr_info(" `- Got %#x peer %#x (name %s)\n",
ui->ue->ino, ui->ue->peer, ui->ue->ino, ui->ue->peer,
ui->name ? (ui->name[0] ? ui->name : &ui->name[1]) : "-"); ui->name ? (ui->name[0] ? ui->name : &ui->name[1]) : "-");
file_desc_add(&ui->d, ui->ue->id, &unix_desc_ops);
list_add_tail(&ui->list, &unix_sockets); list_add_tail(&ui->list, &unix_sockets);
return file_desc_add(&ui->d, ui->ue->id, &unix_desc_ops);
return 0;
} }
int collect_unix_sockets(void) int collect_unix_sockets(void)
......
...@@ -972,9 +972,7 @@ static int collect_one_tty(void *obj, ProtobufCMessage *msg) ...@@ -972,9 +972,7 @@ static int collect_one_tty(void *obj, ProtobufCMessage *msg)
pr_info("Collected tty ID %#x\n", info->tfe->id); pr_info("Collected tty ID %#x\n", info->tfe->id);
list_add(&info->list, &all_ttys); list_add(&info->list, &all_ttys);
file_desc_add(&info->d, info->tfe->id, &tty_desc_ops); return file_desc_add(&info->d, info->tfe->id, &tty_desc_ops);
return 0;
} }
int collect_tty(void) int collect_tty(void)
......
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