[CRIU] [PATCH 04/16] dump: hide check for fifo
Kinsbursky Stanislav
skinsbursky at openvz.org
Thu Mar 1 12:56:41 EST 2012
Signed-off-by: Stanislav Kinsbursky <skinsbursky at openvz.org>
---
cr-dump.c | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/cr-dump.c b/cr-dump.c
index cb2bf1a..87fb4bd 100644
--- a/cr-dump.c
+++ b/cr-dump.c
@@ -252,6 +252,17 @@ static int dump_one_pipe(struct fd_parms *p, unsigned int id, int lfd,
{
struct pipe_entry e;
int ret = -1;
+ struct statfs stfs_buf;
+
+ if (fstatfs(lfd, &stfs_buf) < 0) {
+ pr_perror("Can't fstatfs on %ld", p->fd_name);
+ return -1;
+ }
+
+ if (stfs_buf.f_type != PIPEFS_MAGIC) {
+ pr_err("Dumping of FIFO's is not supported: %ld\n", p->fd_name);
+ return -1;
+ }
pr_info("Dumping pipe %ld/%x flags %x\n", p->fd_name, id, p->flags);
@@ -305,7 +316,6 @@ static int read_fd_params(pid_t pid, char *fd, struct fd_parms *p)
static int dump_one_fd(pid_t pid, int pid_fd_dir, char *d_name, struct cr_fdset *cr_fdset,
struct sk_queue *sk_queue)
{
- struct statfs stfs_buf;
struct stat st_buf;
int err = -1;
struct fd_parms p;
@@ -352,15 +362,8 @@ static int dump_one_fd(pid_t pid, int pid_fd_dir, char *d_name, struct cr_fdset
return dump_one_reg_file(&p, lfd, cr_fdset, 1);
}
- if (S_ISFIFO(st_buf.st_mode)) {
- if (fstatfs(lfd, &stfs_buf) < 0) {
- pr_perror("Can't fstatfs on %ld", p.fd_name);
- return -1;
- }
-
- if (stfs_buf.f_type == PIPEFS_MAGIC)
- return dump_one_pipe(&p, st_buf.st_ino, lfd, cr_fdset);
- }
+ if (S_ISFIFO(st_buf.st_mode))
+ return dump_one_pipe(&p, st_buf.st_ino, lfd, cr_fdset);
err:
pr_err("Can't dump file %ld of that type [%x]\n", p.fd_name, st_buf.st_mode);
More information about the CRIU
mailing list