Browse Source

Bugfix: restart_stratum: Release pool_test_lock on failure

Luke Dashjr 11 years ago
parent
commit
27d75edbcd
1 changed files with 16 additions and 3 deletions
  1. 16 3
      util.c

+ 16 - 3
util.c

@@ -2859,15 +2859,28 @@ out:
 
 bool restart_stratum(struct pool *pool)
 {
+	bool ret = true;
+	
 	mutex_lock(&pool->pool_test_lock);
+	
 	if (pool->stratum_active)
 		suspend_stratum(pool);
+	
 	if (!initiate_stratum(pool))
-		return false;
+	{
+		ret = false;
+		goto out;
+	}
 	if (!auth_stratum(pool))
-		return false;
+	{
+		ret = false;
+		goto out;
+	}
+	
+out:
 	mutex_unlock(&pool->pool_test_lock);
-	return true;
+	
+	return ret;
 }
 
 void dev_error_update(struct cgpu_info *dev, enum dev_reason reason)