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