Make the hp_sw checker use the async checker framework.
Signed-off-by: Martin Wilck <[email protected]>
---
libmultipath/checkers/hp_sw.c | 32 ++++++++------------------------
1 file changed, 8 insertions(+), 24 deletions(-)
diff --git a/libmultipath/checkers/hp_sw.c b/libmultipath/checkers/hp_sw.c
index 1ab7909..770221f 100644
--- a/libmultipath/checkers/hp_sw.c
+++ b/libmultipath/checkers/hp_sw.c
@@ -1,8 +1,6 @@
/*
* Copyright (c) 2005 Christophe Varoqui
*/
-#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -12,7 +10,7 @@
#include <errno.h>
#include "checkers.h"
-
+#include "async_checker.h"
#include "sg_include.h"
#include "unaligned.h"
@@ -28,20 +26,6 @@
#define MX_ALLOC_LEN 255
#define HEAVY_CHECK_COUNT 10
-struct sw_checker_context {
- void * dummy;
-};
-
-int libcheck_init (__attribute__((unused)) struct checker * c)
-{
- return 0;
-}
-
-void libcheck_free (__attribute__((unused)) struct checker * c)
-{
- return;
-}
-
static int
do_inq(int sg_fd, int cmddt, int evpd, unsigned int pg_op,
void *resp, int mx_resp_len, unsigned int timeout)
@@ -127,24 +111,24 @@ do_tur (int fd, unsigned int timeout)
return 0;
}
-int libcheck_check(struct checker * c)
+int libcheck_async_func(struct runner_data *rdata)
{
char buff[MX_ALLOC_LEN];
- int ret = do_inq(c->fd, 0, 1, 0x80, buff, MX_ALLOC_LEN, c->timeout);
+ int ret = do_inq(rdata->fd, 0, 1, 0x80, buff, MX_ALLOC_LEN,
rdata->timeout);
if (ret == PATH_WILD) {
- c->msgid = CHECKER_MSGID_UNSUPPORTED;
+ rdata->msgid = CHECKER_MSGID_UNSUPPORTED;
return ret;
}
if (ret != PATH_UP) {
- c->msgid = CHECKER_MSGID_DOWN;
+ rdata->msgid = CHECKER_MSGID_DOWN;
return ret;
};
- if (do_tur(c->fd, c->timeout)) {
- c->msgid = CHECKER_MSGID_GHOST;
+ if (do_tur(rdata->fd, rdata->timeout)) {
+ rdata->msgid = CHECKER_MSGID_GHOST;
return PATH_GHOST;
}
- c->msgid = CHECKER_MSGID_UP;
+ rdata->msgid = CHECKER_MSGID_UP;
return PATH_UP;
}
--
2.54.0