xref: /linux/include/asm-generic/bitops/ext2-atomic.h (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1 #ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_
2 #define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_
3 
4 /*
5  * Spinlock based version of ext2 atomic bitops
6  */
7 
8 #define ext2_set_bit_atomic(lock, nr, addr)		\
9 	({						\
10 		int ret;				\
11 		spin_lock(lock);			\
12 		ret = __test_and_set_bit_le(nr, addr);	\
13 		spin_unlock(lock);			\
14 		ret;					\
15 	})
16 
17 #define ext2_clear_bit_atomic(lock, nr, addr)		\
18 	({						\
19 		int ret;				\
20 		spin_lock(lock);			\
21 		ret = __test_and_clear_bit_le(nr, addr);	\
22 		spin_unlock(lock);			\
23 		ret;					\
24 	})
25 
26 #endif /* _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ */
27