From a17626eea22dd2452955412b41946ffe0a7b8479 Mon Sep 17 00:00:00 2001
From: Federico Vaga <federico.vaga@gmail.com>
Date: Fri, 27 Jan 2012 02:59:15 +0100
Subject: [PATCH] zstat->cset_list: lock operations on this list

Signed-off-by: Federico Vaga <federico.vaga@gmail.com>
Acked-by: Alessandro Rubini <rubini@gnudd.com>
---
 zio-sys.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/zio-sys.c b/zio-sys.c
index a8494be..e0deaec 100644
--- a/zio-sys.c
+++ b/zio-sys.c
@@ -1433,9 +1433,9 @@ static int cset_register(struct zio_cset *cset)
 			goto out_tr;
 		cset->trig = trig;
 	}
-
+	spin_lock(&zstat->lock);
 	list_add(&cset->list_cset, &zstat->list_cset);
-
+	spin_unlock(&zstat->lock);
 	/* Private initialization function */
 	if (cset->init) {
 		err = cset->init(cset);
@@ -1479,7 +1479,9 @@ static void cset_unregister(struct zio_cset *cset)
 		cset->exit(cset);
 
 	/* Remove from csets list*/
+	spin_lock(&zstat->lock);
 	list_del(&cset->list_cset);
+	spin_unlock(&zstat->lock);
 	/* destroy instance and decrement trigger usage */
 	__ti_unregister(cset->trig, cset->ti);
 	__ti_destroy(cset->trig,  cset->ti);
-- 
GitLab