BH_Lock
wait_on_bit_io(&bh->b_state, BH_Lock, TASK_UNINTERRUPTIBLE);
(bh->b_state & ((1 << BH_Dirty) | (1 << BH_Lock)));
wait_on_bit_lock_io(&bh->b_state, BH_Lock, TASK_UNINTERRUPTIBLE);
clear_bit_unlock(BH_Lock, &bh->b_state);
wake_up_bit(&bh->b_state, BH_Lock);
const unsigned long b_state = (1UL << BH_Dirty)|(1UL << BH_Pinned)|(1UL << BH_Lock);
((bh)->b_state & ((1ul << BH_Dirty) | (1ul << BH_Lock) | (1ul << BH_Pinned)))
return likely(!test_and_set_bit_lock(BH_Lock, &bh->b_state));