14 Jan, 2011
1 commit
-
Po-Yu Chuang noticed that hlist_bl_set_first could
crash on a UP system when LIST_BL_LOCKMASK is 0, becauseLIST_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
07 Jan, 2011
1 commit
-
Introduce a type of hlist that can support the use of the lowest bit in the
hlist_head. This will be subsequently used to implement per-bucket bit spinlock
for inode and dentry hashes, and may be useful in other cases such as network
hashes.Reviewed-by: Paul E. McKenney
Signed-off-by: Nick Piggin