mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-08-03 07:12:48 +00:00
binfmt_misc: Skip dumping if it's not virtual
Similar to devtmpfs and devpts, skip binfmt_misc mount if it's not virtual. Signed-off-by: Kirill Tkhai <ktkhai@odin.com> Acked-by: Andrew Vagin <avagin@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
505896e664
commit
36c4cba986
4 changed files with 21 additions and 1 deletions
|
|
@ -45,4 +45,8 @@
|
|||
#define PROC_SUPER_MAGIC 0x9fa0
|
||||
#endif
|
||||
|
||||
#ifndef BINFMTFS_MAGIC
|
||||
#define BINFMTFS_MAGIC 0x42494e4d
|
||||
#endif
|
||||
|
||||
#endif /* __CR_FS_MAGIC_H__ */
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ extern struct kerndat_s kdat;
|
|||
enum {
|
||||
KERNDAT_FS_STAT_DEVPTS,
|
||||
KERNDAT_FS_STAT_DEVTMPFS,
|
||||
KERNDAT_FS_STAT_BINFMT_MISC,
|
||||
|
||||
KERNDAT_FS_STAT_MAX
|
||||
};
|
||||
|
|
|
|||
|
|
@ -92,6 +92,11 @@ static dev_t get_host_dev(unsigned int which)
|
|||
.path = "/dev",
|
||||
.magic = TMPFS_MAGIC,
|
||||
},
|
||||
[KERNDAT_FS_STAT_BINFMT_MISC] = {
|
||||
.name = "binfmt_misc",
|
||||
.path = "/proc/sys/fs/binfmt_misc",
|
||||
.magic = BINFMTFS_MAGIC,
|
||||
},
|
||||
};
|
||||
|
||||
if (which >= KERNDAT_FS_STAT_MAX) {
|
||||
|
|
|
|||
12
mount.c
12
mount.c
|
|
@ -1291,6 +1291,11 @@ static int devtmpfs_restore(struct mount_info *pm)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int binfmt_misc_virtual(struct mount_info *pm)
|
||||
{
|
||||
return kerndat_fs_virtualized(KERNDAT_FS_STAT_BINFMT_MISC, pm->s_dev);
|
||||
}
|
||||
|
||||
static int parse_binfmt_misc_entry(struct bfd *f, BinfmtMiscEntry *bme)
|
||||
{
|
||||
while (1) {
|
||||
|
|
@ -1375,9 +1380,13 @@ err:
|
|||
static int binfmt_misc_dump(struct mount_info *pm)
|
||||
{
|
||||
struct cr_img *img;
|
||||
int fd, ret = -1;
|
||||
struct dirent *de;
|
||||
DIR *fdir = NULL;
|
||||
int fd, ret;
|
||||
|
||||
ret = binfmt_misc_virtual(pm);
|
||||
if (ret <= 0)
|
||||
return ret;
|
||||
|
||||
fd = open_mountpoint(pm);
|
||||
if (fd < 0)
|
||||
|
|
@ -1389,6 +1398,7 @@ static int binfmt_misc_dump(struct mount_info *pm)
|
|||
return -1;
|
||||
}
|
||||
|
||||
ret = -1;
|
||||
img = open_image(CR_FD_BINFMT_MISC, O_DUMP, pm->s_dev);
|
||||
if (!img)
|
||||
goto out;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue