1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2765f34feSAkinobu Mita #ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ 3765f34feSAkinobu Mita #define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ 4765f34feSAkinobu Mita 5148817baSAkinobu Mita /* 6148817baSAkinobu Mita * Spinlock based version of ext2 atomic bitops 7148817baSAkinobu Mita */ 8148817baSAkinobu Mita 9765f34feSAkinobu Mita #define ext2_set_bit_atomic(lock, nr, addr) \ 10765f34feSAkinobu Mita ({ \ 11765f34feSAkinobu Mita int ret; \ 12765f34feSAkinobu Mita spin_lock(lock); \ 13c5653005SAkinobu Mita ret = __test_and_set_bit_le(nr, addr); \ 14765f34feSAkinobu Mita spin_unlock(lock); \ 15765f34feSAkinobu Mita ret; \ 16765f34feSAkinobu Mita }) 17765f34feSAkinobu Mita 18765f34feSAkinobu Mita #define ext2_clear_bit_atomic(lock, nr, addr) \ 19765f34feSAkinobu Mita ({ \ 20765f34feSAkinobu Mita int ret; \ 21765f34feSAkinobu Mita spin_lock(lock); \ 22c5653005SAkinobu Mita ret = __test_and_clear_bit_le(nr, addr); \ 23765f34feSAkinobu Mita spin_unlock(lock); \ 24765f34feSAkinobu Mita ret; \ 25765f34feSAkinobu Mita }) 26765f34feSAkinobu Mita 27765f34feSAkinobu Mita #endif /* _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ */ 28