Commit cfe72ab7 authored by Pavel Emelyanov's avatar Pavel Emelyanov

service: Put service sk inode into separate variable

I'm about to get rid of service state struct.
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 14559435
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "cr-service.h" #include "cr-service.h"
struct _cr_service_client *cr_service_client; struct _cr_service_client *cr_service_client;
unsigned int service_sk_ino = 0;
static int recv_criu_msg(int socket_fd, CriuReq **msg) static int recv_criu_msg(int socket_fd, CriuReq **msg)
{ {
...@@ -94,7 +95,8 @@ static int setup_dump_from_req(int sk, CriuDumpReq *req) ...@@ -94,7 +95,8 @@ static int setup_dump_from_req(int sk, CriuDumpReq *req)
return -1; return -1;
} }
cr_service_client->sk_ino = st.st_ino; BUG_ON(st.st_ino == 0);
service_sk_ino = st.st_ino;
/* going to dir, where to place images*/ /* going to dir, where to place images*/
sprintf(images_dir_path, "/proc/%d/fd/%d", ids.pid, req->images_dir_fd); sprintf(images_dir_path, "/proc/%d/fd/%d", ids.pid, req->images_dir_fd);
......
...@@ -11,10 +11,10 @@ int cr_service(bool deamon_mode); ...@@ -11,10 +11,10 @@ int cr_service(bool deamon_mode);
int send_criu_dump_resp(int socket_fd, bool success, bool restored); int send_criu_dump_resp(int socket_fd, bool success, bool restored);
struct _cr_service_client { struct _cr_service_client {
int sk_ino;
int uid; int uid;
}; };
extern struct _cr_service_client *cr_service_client; extern struct _cr_service_client *cr_service_client;
extern unsigned int service_sk_ino;
#endif #endif
...@@ -88,11 +88,6 @@ static void show_one_unix_img(const char *act, const UnixSkEntry *e) ...@@ -88,11 +88,6 @@ static void show_one_unix_img(const char *act, const UnixSkEntry *e)
act, e->id, e->ino, e->peer, e->type, e->state, (int)e->name.len); act, e->id, e->ino, e->peer, e->type, e->state, (int)e->name.len);
} }
static bool service_socket(unsigned int sk_ino)
{
return cr_service_client && (cr_service_client->sk_ino == sk_ino);
}
static int can_dump_unix_sk(const struct unix_sk_desc *sk) static int can_dump_unix_sk(const struct unix_sk_desc *sk)
{ {
/* /*
...@@ -156,7 +151,7 @@ static int dump_one_unix_fd(int lfd, u32 id, const struct fd_parms *p) ...@@ -156,7 +151,7 @@ static int dump_one_unix_fd(int lfd, u32 id, const struct fd_parms *p)
* Check if this socket is connected to criu service. * Check if this socket is connected to criu service.
* Dump it like closed one and mark it for restore. * Dump it like closed one and mark it for restore.
*/ */
if (service_socket(ue.peer)) { if (unlikely(ue.peer == service_sk_ino)) {
ue.state = TCP_CLOSE; ue.state = TCP_CLOSE;
ue.peer = 0; ue.peer = 0;
ue.uflags |= USK_SERVICE; ue.uflags |= USK_SERVICE;
......
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