[CRIU] [PATCH] bfd: Use ERR_PTR and such instead of BREADERR
Cyrill Gorcunov
gorcunov at openvz.org
Wed Oct 1 00:21:48 PDT 2014
No need to invent new error codes here, simply
use ERR_PTR/IS_ERR_OR_NULL and such.
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
bfd.c | 3 ++-
include/bfd.h | 4 +++-
proc_parse.c | 12 +++++++-----
3 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/bfd.c b/bfd.c
index a45eb97297a3..d7fa16c68c39 100644
--- a/bfd.c
+++ b/bfd.c
@@ -5,6 +5,7 @@
#include <sys/mman.h>
#include <fcntl.h>
#include <sys/uio.h>
+#include <errno.h>
#include "bug.h"
#include "log.h"
@@ -200,7 +201,7 @@ again:
/* no full line in the buffer -- refill one */
if (brefill(f) < 0)
- return BREADERR;
+ return ERR_PTR(-EIO);
refilled = true;
diff --git a/include/bfd.h b/include/bfd.h
index 080045594012..f40ae5f90c12 100644
--- a/include/bfd.h
+++ b/include/bfd.h
@@ -1,5 +1,8 @@
#ifndef __CR_BFD_H__
#define __CR_BFD_H__
+
+#include "err.h"
+
struct bfd_buf;
struct xbuf {
char *mem; /* buffer */
@@ -23,7 +26,6 @@ static inline void bfd_setraw(struct bfd *b)
b->b.mem = NULL;
}
-#define BREADERR ((char *)-1)
int bfdopen(struct bfd *f);
void bclose(struct bfd *f);
char *breadline(struct bfd *f);
diff --git a/proc_parse.c b/proc_parse.c
index d63d67755249..3a2747fa468a 100644
--- a/proc_parse.c
+++ b/proc_parse.c
@@ -1106,19 +1106,19 @@ static int parse_timerfd(struct bfd *f, char *str, TimerfdEntry *tfy)
goto parse_err;
str = breadline(f);
- if (str == NULL || str == BREADERR)
+ if (IS_ERR_OR_NULL(str))
goto nodata;
if (sscanf(str, "ticks: %llu", (unsigned long long *)&tfy->ticks) != 1)
goto parse_err;
str = breadline(f);
- if (str == NULL || str == BREADERR)
+ if (IS_ERR_OR_NULL(str))
goto nodata;
if (sscanf(str, "settime flags: 0%o", &tfy->settime_flags) != 1)
goto parse_err;
str = breadline(f);
- if (str == NULL || str == BREADERR)
+ if (IS_ERR_OR_NULL(str))
goto nodata;
if (sscanf(str, "it_value: (%llu, %llu)",
(unsigned long long *)&tfy->vsec,
@@ -1126,7 +1126,7 @@ static int parse_timerfd(struct bfd *f, char *str, TimerfdEntry *tfy)
goto parse_err;
str = breadline(f);
- if (str == NULL || str == BREADERR)
+ if (IS_ERR_OR_NULL(str))
goto nodata;
if (sscanf(str, "it_interval: (%llu, %llu)",
(unsigned long long *)&tfy->isec,
@@ -1166,8 +1166,10 @@ static int parse_fdinfo_pid_s(int pid, int fd, int type,
str = breadline(&f);
if (!str)
break;
- if (str == BREADERR)
+ if (IS_ERR(str))
goto out;
+ else
+ BUG();
if (fdinfo_field(str, "pos") ||
fdinfo_field(str, "flags") ||
--
1.9.3
More information about the CRIU
mailing list