From 821621cdb7ad67a4cee777466fc3f05cbbb7cc2c Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Sat, 17 Aug 2013 03:56:18 +0400 Subject: [PATCH] files: Don't restore pos when file doesn't support one It's not quite clean, but on dump non-seekable files dump 0xff...ff into 64-bit pos field of the image. Thus on restore we'd face an error in the do_open_reg. In order not to have separate helper for non-seekable files just skip the position restore for such. Signed-off-by: Pavel Emelyanov --- files-reg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/files-reg.c b/files-reg.c index b58b63b20..38d11dcb4 100644 --- a/files-reg.c +++ b/files-reg.c @@ -529,7 +529,8 @@ static int do_open_reg(struct reg_file_info *rfi, void *arg) return fd; } - if (lseek(fd, rfi->rfe->pos, SEEK_SET) < 0) { + if ((rfi->rfe->pos != -1ULL) && + lseek(fd, rfi->rfe->pos, SEEK_SET) < 0) { pr_perror("Can't restore file pos"); close(fd); return -1;