|
|
|
@ -2872,12 +2872,15 @@ static inline struct pool *select_pool(bool lagging)
@@ -2872,12 +2872,15 @@ static inline struct pool *select_pool(bool lagging)
|
|
|
|
|
|
|
|
|
|
cp = current_pool(); |
|
|
|
|
|
|
|
|
|
if (pool_strategy == POOL_BALANCE) |
|
|
|
|
return select_balanced(cp); |
|
|
|
|
if (pool_strategy == POOL_BALANCE) { |
|
|
|
|
pool = select_balanced(cp); |
|
|
|
|
goto out; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (pool_strategy != POOL_LOADBALANCE && (!lagging || opt_fail_only)) |
|
|
|
|
if (pool_strategy != POOL_LOADBALANCE && (!lagging || opt_fail_only)) { |
|
|
|
|
pool = cp; |
|
|
|
|
else |
|
|
|
|
goto out; |
|
|
|
|
} else |
|
|
|
|
pool = NULL; |
|
|
|
|
|
|
|
|
|
/* Try to find the first pool in the rotation that is usable */ |
|
|
|
@ -2916,7 +2919,7 @@ static inline struct pool *select_pool(bool lagging)
@@ -2916,7 +2919,7 @@ static inline struct pool *select_pool(bool lagging)
|
|
|
|
|
/* If still nothing is usable, use the current pool */ |
|
|
|
|
if (!pool) |
|
|
|
|
pool = cp; |
|
|
|
|
|
|
|
|
|
out: |
|
|
|
|
applog(LOG_DEBUG, "Selecting pool %d for work", pool->pool_no); |
|
|
|
|
return pool; |
|
|
|
|
} |
|
|
|
|