| Message ID | tencent_238A42C6350C25F55AFAA340BCE35A0D3B08@qq.com |
|---|---|
| State | New |
| Headers | show |
| Series | ksmbd: use clear_and_wake_up_bit() in wake_up_oplock_break() | expand |
We can remove wake_up_oplock_break() now as well, call clear_and_wake_up_bit() directly. On 10/1/26 02:37, Daijiamu wrote: > static void wake_up_oplock_break(struct oplock_info *opinfo) > { > - clear_bit_unlock(0, &opinfo->pending_break); > - /* memory barrier is needed for wake_up_bit() */ > - smp_mb__after_atomic(); > - wake_up_bit(&opinfo->pending_break, 0); > + clear_and_wake_up_bit(0, &opinfo->pending_break); > }
diff --git a/fs/smb/server/oplock.c b/fs/smb/server/oplock.c index 1b8c3482d1e4..bbf84b05dcf7 100644 --- a/fs/smb/server/oplock.c +++ b/fs/smb/server/oplock.c @@ -765,10 +765,7 @@ static bool wait_for_break_ack(struct oplock_info *opinfo) static void wake_up_oplock_break(struct oplock_info *opinfo) { - clear_bit_unlock(0, &opinfo->pending_break); - /* memory barrier is needed for wake_up_bit() */ - smp_mb__after_atomic(); - wake_up_bit(&opinfo->pending_break, 0); + clear_and_wake_up_bit(0, &opinfo->pending_break); } static bool oplock_break_set_ack_wait(struct oplock_info *opinfo)
clear_and_wake_up_bit() was introduced by commit 8236b0ae31c8 ("bdi: wake up concurrent wb_shutdown() callers.") to replace the open-coded clear_bit_unlock() + smp_mb__after_atomic() + wake_up_bit() sequence. Use the helper in wake_up_oplock_break() to standardize the code path. Signed-off-by: Daijiamu <3058704216@qq.com> --- fs/smb/server/oplock.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)