diff mbox series

ksmbd: use clear_and_wake_up_bit() in wake_up_oplock_break()

Message ID tencent_238A42C6350C25F55AFAA340BCE35A0D3B08@qq.com
State New
Headers show
Series ksmbd: use clear_and_wake_up_bit() in wake_up_oplock_break() | expand

Commit Message

Daijiamu Sept. 30, 2026, 6:37 p.m. UTC
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(-)

Comments

ChenXiaoSong Oct. 1, 2026, 2:51 a.m. UTC | #1
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 mbox series

Patch

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)