mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
Merge patch series "fs: refactor code to use clear_and_wake_up_bit()"
Agatha Isabelle Moreira <code@agatha.dev> says:
Refactor code to use `clear_and_wake_up_bit()` instead of manual calls
to:
clear_bit_unlock();
smp_mb__after_atomic();
wake_up_bit();
The helper function `clear_and_wake_up_bit()` was introduced in
'commit 8236b0ae31 ("bdi: wake up concurrent wb_shutdown()
callers.")' as a generic way of doing the same sequence of operations,
but several pieces of code still remain.
Replace manual calls to the operations by a single call to
`clear_and_wake_up_bit()` to deduplicate code and standardize pathways.
* patches from https://patch.msgid.link/ag4PEP52c8rxrYPc@guidai:
fs: jbd2: use clear_and_wake_up_bit() in journal_end_buffer_io_sync()
fs: buffer: use clear_and_wake_up_bit() in unlock_buffer()
Link: https://patch.msgid.link/ag4PEP52c8rxrYPc@guidai
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
This commit is contained in:
commit
99489cd82c
|
|
@ -74,9 +74,7 @@ EXPORT_SYMBOL(__lock_buffer);
|
|||
|
||||
void unlock_buffer(struct buffer_head *bh)
|
||||
{
|
||||
clear_bit_unlock(BH_Lock, &bh->b_state);
|
||||
smp_mb__after_atomic();
|
||||
wake_up_bit(&bh->b_state, BH_Lock);
|
||||
clear_and_wake_up_bit(BH_Lock, &bh->b_state);
|
||||
}
|
||||
EXPORT_SYMBOL(unlock_buffer);
|
||||
|
||||
|
|
|
|||
|
|
@ -39,9 +39,7 @@ static void journal_end_buffer_io_sync(struct buffer_head *bh, int uptodate)
|
|||
else
|
||||
clear_buffer_uptodate(bh);
|
||||
if (orig_bh) {
|
||||
clear_bit_unlock(BH_Shadow, &orig_bh->b_state);
|
||||
smp_mb__after_atomic();
|
||||
wake_up_bit(&orig_bh->b_state, BH_Shadow);
|
||||
clear_and_wake_up_bit(BH_Shadow, &orig_bh->b_state);
|
||||
}
|
||||
unlock_buffer(bh);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user