@@ -305,8 +305,8 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
* decide that the page is now completely done.
*/
first = page_buffers(page);
- local_irq_save(flags);
bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
+ local_irq_save(flags);
clear_buffer_async_read(bh);
unlock_buffer(bh);
tmp = bh;
@@ -319,8 +319,8 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
}
tmp = tmp->b_this_page;
} while (tmp != bh);
- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
local_irq_restore(flags);
+ bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
/*
* If none of the buffers had errors and they are all
@@ -332,8 +332,8 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
return;
still_busy:
- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
local_irq_restore(flags);
+ bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
return;
}
@@ -362,8 +362,8 @@ void end_buffer_async_write(struct buffer_head *bh, int uptodate)
}
first = page_buffers(page);
- local_irq_save(flags);
bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
+ local_irq_save(flags);
clear_buffer_async_write(bh);
unlock_buffer(bh);
@@ -375,14 +375,14 @@ void end_buffer_async_write(struct buffer_head *bh, int uptodate)
}
tmp = tmp->b_this_page;
}
- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
local_irq_restore(flags);
+ bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
end_page_writeback(page);
return;
still_busy:
- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
local_irq_restore(flags);
+ bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
return;
}
EXPORT_SYMBOL(end_buffer_async_write);
Signed-off-by: Nikolay Borisov <kernel@kyup.com> --- fs/buffer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)