include/asm-sparc/bitops.h | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff -puN include/asm-sparc/bitops.h~ext2-no-lock_super-fix-2 include/asm-sparc/bitops.h --- 25-power4/include/asm-sparc/bitops.h~ext2-no-lock_super-fix-2 2003-03-13 18:27:00.000000000 -0800 +++ 25-power4-akpm/include/asm-sparc/bitops.h 2003-03-13 18:27:34.000000000 -0800 @@ -454,9 +454,26 @@ found_middle: find_next_zero_le_bit((addr), (size), 0) #define ext2_set_bit __test_and_set_le_bit -#define ext2_set_bit_atomic(l,n,a) test_and_set_le_bit(n,a) #define ext2_clear_bit __test_and_clear_le_bit -#define ext2_clear_bit_atomic(l,n,a) test_and_clear_le_bit(n,a) + +#define ext2_set_bit_atomic(lock, nr, addr) \ + ({ \ + int ret; \ + spin_lock(lock); \ + ret = ext2_set_bit((nr), (addr)); \ + spin_unlock(lock); \ + ret; \ + }) + +#define ext2_clear_bit_atomic(lock, nr, addr) \ + ({ \ + int ret; \ + spin_lock(lock); \ + ret = ext2_clear_bit((nr), (addr)); \ + spin_unlock(lock); \ + ret; \ + }) + #define ext2_test_bit test_le_bit #define ext2_find_first_zero_bit find_first_zero_le_bit #define ext2_find_next_zero_bit find_next_zero_le_bit _