slub: Rework allocator fastpaths

Rework the allocation paths so that updates of the page freelist, frozen state
and number of objects use cmpxchg_double_slab().

Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>

Change-Id: I4e58e2b90a4ab9c9b6d1bb1fa06b4ebf67deccef
[zwliew: rework commit 73736e0387ba0e6d2b703407b4d26168d31516a7 upstream]
Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>