This is an automated email from the git hooks/post-receive script.
andyp pushed a commit to branch master
in repository gfs2-utils.
commit 416098d9d079e878cd568702a4cb26a348efc1d4
Author: Andrew Price <anprice(a)redhat.com>
AuthorDate: Tue Jan 21 17:58:41 2020 +0000
restoremeta: Convert iseof function to a flag
EOF is flagged up on short reads so it can be detected in the ->read()
operation.
Signed-off-by: Andrew Price <anprice(a)redhat.com>
---
gfs2/edit/savemeta.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index 99b88e4..2cfa2f4 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -54,8 +54,8 @@ struct metafd {
gzFile gzfd;
const char *filename;
int gziplevel;
+ int eof;
int (*read)(struct metafd *mfd, void *buf, unsigned len);
- int (*iseof)(struct metafd *mfd);
void (*close)(struct metafd *mfd);
const char* (*strerr)(struct metafd *mfd);
};
@@ -72,12 +72,10 @@ static const char *gz_strerr(struct metafd *mfd)
static int gz_read(struct metafd *mfd, void *buf, unsigned len)
{
- return gzread(mfd->gzfd, buf, len);
-}
-
-static int gz_iseof(struct metafd *mfd)
-{
- return gzeof(mfd->gzfd);
+ int ret = gzread(mfd->gzfd, buf, len);
+ if (ret < len && gzeof(mfd->gzfd))
+ mfd->eof = 1;
+ return ret;
}
static void gz_close(struct metafd *mfd)
@@ -1023,7 +1021,7 @@ static int restore_block(struct metafd *mfd, struct saved_metablock
*svb, char *
return 0;
read_err:
- if (mfd->iseof(mfd))
+ if (mfd->eof)
return 1;
errstr = mfd->strerr(mfd);
@@ -1144,7 +1142,6 @@ static int restore_init(const char *path, struct metafd *mfd, struct
savemeta_he
return 1;
}
mfd->read = gz_read;
- mfd->iseof = gz_iseof;
mfd->close = gz_close;
mfd->strerr = gz_strerr;
mfd->gzfd = gzdopen(mfd->fd, "rb");
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
Show replies by thread