1765f34feSAkinobu Mita #ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ 2765f34feSAkinobu Mita #define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ 3765f34feSAkinobu Mita 4*148817baSAkinobu Mita /* 5*148817baSAkinobu Mita * Spinlock based version of ext2 atomic bitops 6*148817baSAkinobu Mita */ 7*148817baSAkinobu Mita 8765f34feSAkinobu Mita #define ext2_set_bit_atomic(lock, nr, addr) \ 9765f34feSAkinobu Mita ({ \ 10765f34feSAkinobu Mita int ret; \ 11765f34feSAkinobu Mita spin_lock(lock); \ 12c5653005SAkinobu Mita ret = __test_and_set_bit_le(nr, addr); \ 13765f34feSAkinobu Mita spin_unlock(lock); \ 14765f34feSAkinobu Mita ret; \ 15765f34feSAkinobu Mita }) 16765f34feSAkinobu Mita 17765f34feSAkinobu Mita #define ext2_clear_bit_atomic(lock, nr, addr) \ 18765f34feSAkinobu Mita ({ \ 19765f34feSAkinobu Mita int ret; \ 20765f34feSAkinobu Mita spin_lock(lock); \ 21c5653005SAkinobu Mita ret = __test_and_clear_bit_le(nr, addr); \ 22765f34feSAkinobu Mita spin_unlock(lock); \ 23765f34feSAkinobu Mita ret; \ 24765f34feSAkinobu Mita }) 25765f34feSAkinobu Mita 26765f34feSAkinobu Mita #endif /* _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ */ 27