diff --git a/zio-sys.c b/zio-sys.c
index a8494bee775b079500bf30949716730dccb57d9e..e0deaec09597f01dc445c635d4303c782ee00fdd 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);