Re: [PATCH] smb: client: refactor cifs_revalidate_mapping() to use clear_and_wake_up_bit()

From: Steve French

Date: Sat Jul 04 2026 - 17:25:48 EST


merged into cifs-2.6.git for-next

On Fri, Jul 3, 2026 at 9:35 PM Mehdi Hassan <mehdi.h.business@xxxxx> wrote:
>
> In the `skip_invalidate:` path under `cifs_revalidate_mapping()`, the
> sequence of calls:
> clear_bit_unlock();
> smp_mb__after_atomic();
> wake_up_bit();
> can be replaced exactly by `clear_and_wake_up_bit()`.
>
> The `clear_and_wake_up_bit()` helper function was introduced in
> 'commit 8236b0ae31c83 ("bdi: wake up concurrent wb_shutdown()
> callers.")' to replace equivalent instances of this sequence of
> operations. This substitution has been applied in multiple subsystems.
>
> Compile-tested with CONFIG_CIFS=y on x86_64, no new warnings present.
>
> Suggested-by: Agatha Isabelle Moreira <code@xxxxxxxxxx>
> Link: https://kernelnewbies.org/Beginner%20Cleanup%20and%20Refactor%20Tasks%20by%20Agatha%20Isabelle%20Moreira#task_010
> Cc: Agatha Isabelle Moreira <code@xxxxxxxxxx>
> Signed-off-by: Mehdi Hassan <mehdi.h.business@xxxxx>
> ---
> fs/smb/client/inode.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/fs/smb/client/inode.c b/fs/smb/client/inode.c
> index 1dbcfd163ff0..2ed1c79c1132 100644
> --- a/fs/smb/client/inode.c
> +++ b/fs/smb/client/inode.c
> @@ -2812,9 +2812,7 @@ cifs_revalidate_mapping(struct inode *inode)
> }
>
> skip_invalidate:
> - clear_bit_unlock(CIFS_INO_LOCK, flags);
> - smp_mb__after_atomic();
> - wake_up_bit(flags, CIFS_INO_LOCK);
> + clear_and_wake_up_bit(CIFS_INO_LOCK, flags);
>
> return rc;
> }
> --
> 2.54.0
>
>
>


--
Thanks,

Steve