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, 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

    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

    Nick Piggin