mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-31 22:35:33 +00:00
img: Get rid of open_image_ro helper
O_RSTR flag should be used instead for regular open_image Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
22
cr-restore.c
22
cr-restore.c
@@ -276,9 +276,9 @@ static int restore_priv_vma_content(pid_t pid)
|
|||||||
|
|
||||||
vma = list_first_entry(&rst_vmas.h, struct vma_area, list);
|
vma = list_first_entry(&rst_vmas.h, struct vma_area, list);
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_PAGEMAP, (long)pid);
|
fd = open_image(CR_FD_PAGEMAP, O_RSTR, (long)pid);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
fd_pg = open_image_ro(CR_FD_PAGES_OLD, pid);
|
fd_pg = open_image(CR_FD_PAGES_OLD, O_RSTR, pid);
|
||||||
if (fd_pg < 0)
|
if (fd_pg < 0)
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
@@ -428,7 +428,7 @@ static int read_vmas(int pid)
|
|||||||
list_replace_init(&rst_vmas.h, &old);
|
list_replace_init(&rst_vmas.h, &old);
|
||||||
|
|
||||||
/* Skip errors, because a zombie doesn't have an image of vmas */
|
/* Skip errors, because a zombie doesn't have an image of vmas */
|
||||||
fd = open_image_ro(CR_FD_VMAS, pid);
|
fd = open_image(CR_FD_VMAS, O_RSTR, pid);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
if (errno != ENOENT)
|
if (errno != ENOENT)
|
||||||
ret = fd;
|
ret = fd;
|
||||||
@@ -571,7 +571,7 @@ static int prepare_sigactions(int pid)
|
|||||||
int sig;
|
int sig;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
fd_sigact = open_image_ro(CR_FD_SIGACT, pid);
|
fd_sigact = open_image(CR_FD_SIGACT, O_RSTR, pid);
|
||||||
if (fd_sigact < 0)
|
if (fd_sigact < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -859,7 +859,7 @@ static inline int fork_with_pid(struct pstree_item *item)
|
|||||||
pid_t pid = item->pid.virt;
|
pid_t pid = item->pid.virt;
|
||||||
|
|
||||||
if (item->state != TASK_HELPER) {
|
if (item->state != TASK_HELPER) {
|
||||||
fd = open_image_ro(CR_FD_CORE, pid);
|
fd = open_image(CR_FD_CORE, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -1434,7 +1434,7 @@ static int prepare_itimers(int pid, struct task_restore_core_args *args)
|
|||||||
int fd, ret = -1;
|
int fd, ret = -1;
|
||||||
ItimerEntry *ie;
|
ItimerEntry *ie;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_ITIMERS, pid);
|
fd = open_image(CR_FD_ITIMERS, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return fd;
|
return fd;
|
||||||
|
|
||||||
@@ -1477,7 +1477,7 @@ static int prepare_creds(int pid, struct task_restore_core_args *args)
|
|||||||
int fd, ret;
|
int fd, ret;
|
||||||
CredsEntry *ce;
|
CredsEntry *ce;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_CREDS, pid);
|
fd = open_image(CR_FD_CREDS, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return fd;
|
return fd;
|
||||||
|
|
||||||
@@ -1550,7 +1550,7 @@ static int prepare_mm(pid_t pid, struct task_restore_core_args *args)
|
|||||||
int fd, exe_fd, i, ret = -1;
|
int fd, exe_fd, i, ret = -1;
|
||||||
MmEntry *mm;
|
MmEntry *mm;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_MM, pid);
|
fd = open_image(CR_FD_MM, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -1673,7 +1673,7 @@ static int prepare_rlimits(int pid, struct task_restore_core_args *ta)
|
|||||||
|
|
||||||
ta->nr_rlim = 0;
|
ta->nr_rlim = 0;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_RLIMIT, pid);
|
fd = open_image(CR_FD_RLIMIT, O_RSTR, pid);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
if (errno == ENOENT) {
|
if (errno == ENOENT) {
|
||||||
pr_info("Skip rlimits for %d\n", pid);
|
pr_info("Skip rlimits for %d\n", pid);
|
||||||
@@ -1719,7 +1719,7 @@ static int open_signal_image(int type, pid_t pid, siginfo_t **ptr,
|
|||||||
{
|
{
|
||||||
int fd, ret, n;
|
int fd, ret, n;
|
||||||
|
|
||||||
fd = open_image_ro(type, pid);
|
fd = open_image(type, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -1993,7 +1993,7 @@ static int sigreturn_restore(pid_t pid, CoreEntry *core)
|
|||||||
task_args->t = thread_args + i;
|
task_args->t = thread_args + i;
|
||||||
tcore = core;
|
tcore = core;
|
||||||
} else {
|
} else {
|
||||||
fd_core = open_image_ro(CR_FD_CORE, thread_args[i].pid);
|
fd_core = open_image(CR_FD_CORE, O_RSTR, thread_args[i].pid);
|
||||||
if (fd_core < 0) {
|
if (fd_core < 0) {
|
||||||
pr_err("Can't open core data for thread %d\n",
|
pr_err("Can't open core data for thread %d\n",
|
||||||
thread_args[i].pid);
|
thread_args[i].pid);
|
||||||
|
10
cr-show.c
10
cr-show.c
@@ -460,7 +460,7 @@ static int cr_show_pstree_item(struct cr_options *opts, struct pstree_item *item
|
|||||||
if (item->threads[i].virt == item->pid.virt)
|
if (item->threads[i].virt == item->pid.virt)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
fd_th = open_image_ro(CR_FD_CORE, item->threads[i].virt);
|
fd_th = open_image(CR_FD_CORE, O_SHOW, item->threads[i].virt);
|
||||||
if (fd_th < 0)
|
if (fd_th < 0)
|
||||||
goto outc;
|
goto outc;
|
||||||
|
|
||||||
@@ -484,7 +484,7 @@ static int cr_show_pstree_item(struct cr_options *opts, struct pstree_item *item
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (pb_read_one(fdset_fd(cr_fdset, CR_FD_IDS), &ids, PB_IDS) > 0) {
|
if (pb_read_one(fdset_fd(cr_fdset, CR_FD_IDS), &ids, PB_IDS) > 0) {
|
||||||
i = open_image_ro(CR_FD_FDINFO, ids->files_id);
|
i = open_image(CR_FD_FDINFO, O_SHOW, ids->files_id);
|
||||||
if (i >= 0) {
|
if (i >= 0) {
|
||||||
pr_msg("* ");
|
pr_msg("* ");
|
||||||
pr_msg(fdset_template[CR_FD_FDINFO].fmt, ids->files_id);
|
pr_msg(fdset_template[CR_FD_FDINFO].fmt, ids->files_id);
|
||||||
@@ -511,7 +511,7 @@ static int cr_show_pid(struct cr_options *opts, int pid)
|
|||||||
int fd, ret;
|
int fd, ret;
|
||||||
struct pstree_item item;
|
struct pstree_item item;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_PSTREE);
|
fd = open_image(CR_FD_PSTREE, O_SHOW);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -541,13 +541,13 @@ static int cr_show_all(struct cr_options *opts)
|
|||||||
struct pstree_item *item = NULL, *tmp;
|
struct pstree_item *item = NULL, *tmp;
|
||||||
int ret = -1, fd, pid;
|
int ret = -1, fd, pid;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_PSTREE);
|
fd = open_image(CR_FD_PSTREE, O_SHOW);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
goto out;
|
goto out;
|
||||||
show_collect_pstree(fd, 1);
|
show_collect_pstree(fd, 1);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_SK_QUEUES);
|
fd = open_image(CR_FD_SK_QUEUES, O_SHOW);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@@ -222,7 +222,7 @@ static int restore_file_locks(int pid)
|
|||||||
int fd, ret = -1;
|
int fd, ret = -1;
|
||||||
FileLockEntry *fle;
|
FileLockEntry *fle;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_FILE_LOCKS, pid);
|
fd = open_image(CR_FD_FILE_LOCKS, O_RSTR, pid);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -73,7 +73,7 @@ static int open_remap_ghost(struct reg_file_info *rfi,
|
|||||||
if (!gf->remap.path)
|
if (!gf->remap.path)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
ifd = open_image_ro(CR_FD_GHOST_FILE, rfe->remap_id);
|
ifd = open_image(CR_FD_GHOST_FILE, O_RSTR, rfe->remap_id);
|
||||||
if (ifd < 0)
|
if (ifd < 0)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
@@ -169,7 +169,7 @@ static int collect_remaps(void)
|
|||||||
{
|
{
|
||||||
int fd, ret = 0;
|
int fd, ret = 0;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_REMAP_FPATH);
|
fd = open_image(CR_FD_REMAP_FPATH, O_RSTR);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
6
files.c
6
files.c
@@ -435,7 +435,7 @@ int prepare_fd_pid(struct pstree_item *item)
|
|||||||
INIT_LIST_HEAD(&rst_info->tty_slaves);
|
INIT_LIST_HEAD(&rst_info->tty_slaves);
|
||||||
|
|
||||||
if (!fdinfo_per_id) {
|
if (!fdinfo_per_id) {
|
||||||
fdinfo_fd = open_image_ro(CR_FD_FDINFO, pid);
|
fdinfo_fd = open_image(CR_FD_FDINFO, O_RSTR, pid);
|
||||||
if (fdinfo_fd < 0) {
|
if (fdinfo_fd < 0) {
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -448,7 +448,7 @@ int prepare_fd_pid(struct pstree_item *item)
|
|||||||
if (item->rst->fdt && item->rst->fdt->pid != item->pid.virt)
|
if (item->rst->fdt && item->rst->fdt->pid != item->pid.virt)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fdinfo_fd = open_image_ro(CR_FD_FDINFO, item->ids->files_id);
|
fdinfo_fd = open_image(CR_FD_FDINFO, O_RSTR, item->ids->files_id);
|
||||||
if (fdinfo_fd < 0)
|
if (fdinfo_fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -817,7 +817,7 @@ int prepare_fs(int pid)
|
|||||||
int ifd, cwd, ret = -1;
|
int ifd, cwd, ret = -1;
|
||||||
FsEntry *fe;
|
FsEntry *fe;
|
||||||
|
|
||||||
ifd = open_image_ro(CR_FD_FS, pid);
|
ifd = open_image(CR_FD_FS, O_RSTR, pid);
|
||||||
if (ifd < 0)
|
if (ifd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
2
image.c
2
image.c
@@ -25,7 +25,7 @@ int check_img_inventory(void)
|
|||||||
int fd, ret = -1;
|
int fd, ret = -1;
|
||||||
InventoryEntry *he;
|
InventoryEntry *he;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_INVENTORY);
|
fd = open_image(CR_FD_INVENTORY, O_RSTR);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@@ -189,7 +189,6 @@ extern int open_image_dir(void);
|
|||||||
extern void close_image_dir(void);
|
extern void close_image_dir(void);
|
||||||
|
|
||||||
int open_image(int type, unsigned long flags, ...);
|
int open_image(int type, unsigned long flags, ...);
|
||||||
#define open_image_ro(type, ...) open_image(type, O_RDONLY, ##__VA_ARGS__)
|
|
||||||
int open_pages_image(unsigned long flags, int pm_fd);
|
int open_pages_image(unsigned long flags, int pm_fd);
|
||||||
void up_page_ids_base(void);
|
void up_page_ids_base(void);
|
||||||
|
|
||||||
|
8
ipc_ns.c
8
ipc_ns.c
@@ -600,7 +600,7 @@ static int prepare_ipc_sem(int pid)
|
|||||||
int fd, ret;
|
int fd, ret;
|
||||||
|
|
||||||
pr_info("Restoring IPC semaphores sets\n");
|
pr_info("Restoring IPC semaphores sets\n");
|
||||||
fd = open_image_ro(CR_FD_IPCNS_SEM, pid);
|
fd = open_image(CR_FD_IPCNS_SEM, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -733,7 +733,7 @@ static int prepare_ipc_msg(int pid)
|
|||||||
int fd, ret;
|
int fd, ret;
|
||||||
|
|
||||||
pr_info("Restoring IPC message queues\n");
|
pr_info("Restoring IPC message queues\n");
|
||||||
fd = open_image_ro(CR_FD_IPCNS_MSG, pid);
|
fd = open_image(CR_FD_IPCNS_MSG, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -843,7 +843,7 @@ static int prepare_ipc_shm(int pid)
|
|||||||
int fd, ret;
|
int fd, ret;
|
||||||
|
|
||||||
pr_info("Restoring IPC shared memory\n");
|
pr_info("Restoring IPC shared memory\n");
|
||||||
fd = open_image_ro(CR_FD_IPCNS_SHM, pid);
|
fd = open_image(CR_FD_IPCNS_SHM, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -881,7 +881,7 @@ static int prepare_ipc_var(int pid)
|
|||||||
IpcVarEntry *var;
|
IpcVarEntry *var;
|
||||||
|
|
||||||
pr_info("Restoring IPC variables\n");
|
pr_info("Restoring IPC variables\n");
|
||||||
fd = open_image_ro(CR_FD_IPCNS_VAR, pid);
|
fd = open_image(CR_FD_IPCNS_VAR, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
4
mount.c
4
mount.c
@@ -296,7 +296,7 @@ static int tmpfs_restore(struct mount_info *pm)
|
|||||||
int ret;
|
int ret;
|
||||||
int fd_img;
|
int fd_img;
|
||||||
|
|
||||||
fd_img = open_image_ro(CR_FD_TMPFS, pm->mnt_id);
|
fd_img = open_image(CR_FD_TMPFS, O_RSTR, pm->mnt_id);
|
||||||
if (fd_img < 0)
|
if (fd_img < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -641,7 +641,7 @@ static int populate_mnt_ns(int ns_pid)
|
|||||||
|
|
||||||
pr_info("Populating mount namespace\n");
|
pr_info("Populating mount namespace\n");
|
||||||
|
|
||||||
img = open_image_ro(CR_FD_MOUNTPOINTS, ns_pid);
|
img = open_image(CR_FD_MOUNTPOINTS, O_RSTR, ns_pid);
|
||||||
if (img < 0)
|
if (img < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
4
net.c
4
net.c
@@ -256,7 +256,7 @@ static int restore_links(int pid)
|
|||||||
int fd, nlsk, ret;
|
int fd, nlsk, ret;
|
||||||
NetDeviceEntry *nde;
|
NetDeviceEntry *nde;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_NETDEV, pid);
|
fd = open_image(CR_FD_NETDEV, O_RSTR, pid);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ static int restore_ip_dump(int type, int pid, char *cmd)
|
|||||||
{
|
{
|
||||||
int fd, ret;
|
int fd, ret;
|
||||||
|
|
||||||
ret = fd = open_image_ro(type, pid);
|
ret = fd = open_image(type, O_RSTR, pid);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
ret = run_ip_tool(cmd, "restore", fd, -1);
|
ret = run_ip_tool(cmd, "restore", fd, -1);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
2
pipes.c
2
pipes.c
@@ -74,7 +74,7 @@ int collect_pipe_data(int img_type, struct pipe_data_rst **hash)
|
|||||||
int fd, ret;
|
int fd, ret;
|
||||||
struct pipe_data_rst *r = NULL;
|
struct pipe_data_rst *r = NULL;
|
||||||
|
|
||||||
fd = open_image_ro(img_type);
|
fd = open_image(img_type, O_RSTR);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@@ -684,7 +684,7 @@ static int __collect_image(int fd_t, int obj_t, unsigned size,
|
|||||||
{
|
{
|
||||||
int fd, ret;
|
int fd, ret;
|
||||||
|
|
||||||
fd = open_image_ro(fd_t);
|
fd = open_image(fd_t, O_RSTR);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
4
pstree.c
4
pstree.c
@@ -190,7 +190,7 @@ static int read_pstree_image(void)
|
|||||||
|
|
||||||
pr_info("Reading image tree\n");
|
pr_info("Reading image tree\n");
|
||||||
|
|
||||||
ps_fd = open_image_ro(CR_FD_PSTREE);
|
ps_fd = open_image(CR_FD_PSTREE, O_RSTR);
|
||||||
if (ps_fd < 0)
|
if (ps_fd < 0)
|
||||||
return ps_fd;
|
return ps_fd;
|
||||||
|
|
||||||
@@ -268,7 +268,7 @@ static int read_pstree_image(void)
|
|||||||
|
|
||||||
pstree_entry__free_unpacked(e, NULL);
|
pstree_entry__free_unpacked(e, NULL);
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_IDS, pi->pid.virt);
|
fd = open_image(CR_FD_IDS, O_RSTR, pi->pid.virt);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
continue;
|
continue;
|
||||||
|
6
shmem.c
6
shmem.c
@@ -83,7 +83,7 @@ int prepare_shmem_pid(int pid)
|
|||||||
int fd, ret = -1;
|
int fd, ret = -1;
|
||||||
VmaEntry *vi;
|
VmaEntry *vi;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_VMAS, pid);
|
fd = open_image(CR_FD_VMAS, O_RSTR, pid);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -138,9 +138,9 @@ static int restore_shmem_content(void *addr, struct shmem_info *si)
|
|||||||
{
|
{
|
||||||
int fd, fd_pg, ret = 0;
|
int fd, fd_pg, ret = 0;
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_SHMEM_PAGEMAP, si->shmid);
|
fd = open_image(CR_FD_SHMEM_PAGEMAP, O_RSTR, si->shmid);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
fd_pg = open_image_ro(CR_FD_SHM_PAGES_OLD, si->shmid);
|
fd_pg = open_image(CR_FD_SHM_PAGES_OLD, O_RSTR, si->shmid);
|
||||||
if (fd_pg < 0)
|
if (fd_pg < 0)
|
||||||
goto err_unmap;
|
goto err_unmap;
|
||||||
} else {
|
} else {
|
||||||
|
@@ -38,7 +38,7 @@ int read_sk_queues(void)
|
|||||||
|
|
||||||
pr_info("Trying to read socket queues image\n");
|
pr_info("Trying to read socket queues image\n");
|
||||||
|
|
||||||
fd = open_image_ro(CR_FD_SK_QUEUES);
|
fd = open_image(CR_FD_SK_QUEUES, O_RSTR);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ int restore_sk_queue(int fd, unsigned int peer_id)
|
|||||||
if (restore_prepare_socket(fd))
|
if (restore_prepare_socket(fd))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
img_fd = open_image_ro(CR_FD_SK_QUEUES);
|
img_fd = open_image(CR_FD_SK_QUEUES, O_RSTR);
|
||||||
if (img_fd < 0)
|
if (img_fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
2
sk-tcp.c
2
sk-tcp.c
@@ -512,7 +512,7 @@ static int restore_tcp_conn_state(int sk, struct inet_sk_info *ii)
|
|||||||
|
|
||||||
pr_info("Restoring TCP connection id %x ino %x\n", ii->ie->id, ii->ie->ino);
|
pr_info("Restoring TCP connection id %x ino %x\n", ii->ie->id, ii->ie->ino);
|
||||||
|
|
||||||
ifd = open_image_ro(CR_FD_TCP_STREAM, ii->ie->ino);
|
ifd = open_image(CR_FD_TCP_STREAM, O_RSTR, ii->ie->ino);
|
||||||
if (ifd < 0)
|
if (ifd < 0)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user