|
|
a5a7cf |
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
a5a7cf |
From: Benjamin Marzinski <bmarzins@redhat.com>
|
|
|
a5a7cf |
Date: Thu, 14 Jan 2021 20:20:26 -0600
|
|
|
a5a7cf |
Subject: [PATCH] multipathd: combine free_io_err_stat_path and
|
|
|
a5a7cf |
destroy_directio_ctx
|
|
|
a5a7cf |
|
|
|
a5a7cf |
destroy_directio_ctx() is only called from free_io_err_stat_path(), and
|
|
|
a5a7cf |
free_io_err_stat_path() is very short, so combine them.
|
|
|
a5a7cf |
|
|
|
a5a7cf |
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
|
a5a7cf |
Reviewed-by: Martin Wilck <mwilck@suse.com>
|
|
|
a5a7cf |
---
|
|
|
a5a7cf |
libmultipath/io_err_stat.c | 24 ++++++++++--------------
|
|
|
a5a7cf |
1 file changed, 10 insertions(+), 14 deletions(-)
|
|
|
a5a7cf |
|
|
|
a5a7cf |
diff --git a/libmultipath/io_err_stat.c b/libmultipath/io_err_stat.c
|
|
|
a5a7cf |
index 3389d693..bf1d3910 100644
|
|
|
a5a7cf |
--- a/libmultipath/io_err_stat.c
|
|
|
a5a7cf |
+++ b/libmultipath/io_err_stat.c
|
|
|
a5a7cf |
@@ -163,12 +163,15 @@ fail_close:
|
|
|
a5a7cf |
return 1;
|
|
|
a5a7cf |
}
|
|
|
a5a7cf |
|
|
|
a5a7cf |
-static void destroy_directio_ctx(struct io_err_stat_path *p)
|
|
|
a5a7cf |
+static void free_io_err_stat_path(struct io_err_stat_path *p)
|
|
|
a5a7cf |
{
|
|
|
a5a7cf |
int i;
|
|
|
a5a7cf |
|
|
|
a5a7cf |
- if (!p || !p->dio_ctx_array)
|
|
|
a5a7cf |
+ if (!p)
|
|
|
a5a7cf |
return;
|
|
|
a5a7cf |
+ if (!p->dio_ctx_array)
|
|
|
a5a7cf |
+ goto free_path;
|
|
|
a5a7cf |
+
|
|
|
a5a7cf |
cancel_inflight_io(p);
|
|
|
a5a7cf |
|
|
|
a5a7cf |
for (i = 0; i < CONCUR_NR_EVENT; i++)
|
|
|
a5a7cf |
@@ -177,6 +180,8 @@ static void destroy_directio_ctx(struct io_err_stat_path *p)
|
|
|
a5a7cf |
|
|
|
a5a7cf |
if (p->fd > 0)
|
|
|
a5a7cf |
close(p->fd);
|
|
|
a5a7cf |
+free_path:
|
|
|
a5a7cf |
+ FREE(p);
|
|
|
a5a7cf |
}
|
|
|
a5a7cf |
|
|
|
a5a7cf |
static struct io_err_stat_path *alloc_io_err_stat_path(void)
|
|
|
a5a7cf |
@@ -199,11 +204,6 @@ static struct io_err_stat_path *alloc_io_err_stat_path(void)
|
|
|
a5a7cf |
return p;
|
|
|
a5a7cf |
}
|
|
|
a5a7cf |
|
|
|
a5a7cf |
-static void free_io_err_stat_path(struct io_err_stat_path *p)
|
|
|
a5a7cf |
-{
|
|
|
a5a7cf |
- FREE(p);
|
|
|
a5a7cf |
-}
|
|
|
a5a7cf |
-
|
|
|
a5a7cf |
static void free_io_err_pathvec(void)
|
|
|
a5a7cf |
{
|
|
|
a5a7cf |
struct io_err_stat_path *path;
|
|
|
a5a7cf |
@@ -213,10 +213,8 @@ static void free_io_err_pathvec(void)
|
|
|
a5a7cf |
pthread_cleanup_push(cleanup_mutex, &io_err_pathvec_lock);
|
|
|
a5a7cf |
if (!io_err_pathvec)
|
|
|
a5a7cf |
goto out;
|
|
|
a5a7cf |
- vector_foreach_slot(io_err_pathvec, path, i) {
|
|
|
a5a7cf |
- destroy_directio_ctx(path);
|
|
|
a5a7cf |
+ vector_foreach_slot(io_err_pathvec, path, i)
|
|
|
a5a7cf |
free_io_err_stat_path(path);
|
|
|
a5a7cf |
- }
|
|
|
a5a7cf |
vector_free(io_err_pathvec);
|
|
|
a5a7cf |
io_err_pathvec = NULL;
|
|
|
a5a7cf |
out:
|
|
|
a5a7cf |
@@ -252,7 +250,7 @@ static int enqueue_io_err_stat_by_path(struct path *path)
|
|
|
a5a7cf |
goto free_ioerr_path;
|
|
|
a5a7cf |
pthread_mutex_lock(&io_err_pathvec_lock);
|
|
|
a5a7cf |
if (!vector_alloc_slot(io_err_pathvec))
|
|
|
a5a7cf |
- goto unlock_destroy;
|
|
|
a5a7cf |
+ goto unlock_pathvec;
|
|
|
a5a7cf |
vector_set_slot(io_err_pathvec, p);
|
|
|
a5a7cf |
pthread_mutex_unlock(&io_err_pathvec_lock);
|
|
|
a5a7cf |
|
|
|
a5a7cf |
@@ -260,9 +258,8 @@ static int enqueue_io_err_stat_by_path(struct path *path)
|
|
|
a5a7cf |
path->mpp->alias, path->dev);
|
|
|
a5a7cf |
return 0;
|
|
|
a5a7cf |
|
|
|
a5a7cf |
-unlock_destroy:
|
|
|
a5a7cf |
+unlock_pathvec:
|
|
|
a5a7cf |
pthread_mutex_unlock(&io_err_pathvec_lock);
|
|
|
a5a7cf |
- destroy_directio_ctx(p);
|
|
|
a5a7cf |
free_ioerr_path:
|
|
|
a5a7cf |
free_io_err_stat_path(p);
|
|
|
a5a7cf |
|
|
|
a5a7cf |
@@ -647,7 +644,6 @@ static void service_paths(void)
|
|
|
a5a7cf |
vector_foreach_slot_backwards(tmp_pathvec, pp, i) {
|
|
|
a5a7cf |
end_io_err_stat(pp);
|
|
|
a5a7cf |
vector_del_slot(tmp_pathvec, i);
|
|
|
a5a7cf |
- destroy_directio_ctx(pp);
|
|
|
a5a7cf |
free_io_err_stat_path(pp);
|
|
|
a5a7cf |
}
|
|
|
a5a7cf |
vector_reset(tmp_pathvec);
|
|
|
a5a7cf |
--
|
|
|
a5a7cf |
2.17.2
|
|
|
a5a7cf |
|