fs: hlist UP debug fixup
authorNick Piggin <npiggin@kernel.dk>
Fri, 14 Jan 2011 02:36:43 +0000 (02:36 +0000)
committerNick Piggin <npiggin@hera.kernel.org>
Fri, 14 Jan 2011 02:36:43 +0000 (02:36 +0000)
commit2c6755988afc003a0332406a134fb6a1626f9b28
tree84eea829cab7b28585000f6fd7fe0dc176b746c5
parent90dbb77ba48dddb87445d238e84cd137cf97dd98
fs: hlist UP debug fixup

Po-Yu Chuang <ratbert.chuang@gmail.com> noticed that hlist_bl_set_first could
crash on a UP system when LIST_BL_LOCKMASK is 0, because

LIST_BL_BUG_ON(!((unsigned long)h->first & LIST_BL_LOCKMASK));

always evaulates to true.

Fix the expression, and also avoid a dependency between bit spinlock
implementation and list bl code (list code shouldn't know anything
except that bit 0 is set when adding and removing elements). Eventually
if a good use case comes up, we might use this list to store 1 or more
arbitrary bits of data, so it really shouldn't be tied to locking either,
but for now they are helpful for debugging.

Signed-off-by: Nick Piggin <npiggin@kernel.dk>
include/linux/list_bl.h
include/linux/rculist_bl.h