Blame SOURCES/0057-multipathd-combine-free_io_err_stat_path-and-destroy.patch

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