BUG/MEDIUM: list: fix the rollback on addq in the locked liss
Commit a8434ec14 ("MINOR: lists: Implement locked variations.")
introduced locked lists which use the elements pointers as locks
for concurrent operations. A copy-paste typo in LIST_ADDQ_LOCKED()
causes corruption in the list in case the next pointer is already
held, as it restores the previous pointer into the next one. It
may impact the server pools.
This will have to be backported if the commit above is backported.
diff --git a/include/common/mini-clist.h b/include/common/mini-clist.h
index 0822828..53db885 100644
--- a/include/common/mini-clist.h
+++ b/include/common/mini-clist.h
@@ -208,7 +208,7 @@
__ha_barrier_store(); \
n = HA_ATOMIC_XCHG(&p->n, LLIST_BUSY); \
if (n == LLIST_BUSY) { \
- (lh)->n = p; \
+ (lh)->p = p; \
__ha_barrier_store(); \
continue; \
} \