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

Mehdi Hassan <[email protected]>
Newsgroups org.kernel.vger.linux-cifs,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
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 <[email protected]>
Link: https://kernelnewbies.org/Beginner%20Cleanup%20and%20Refactor%20Tasks%20by%20Agatha%20Isabelle%20Moreira#task_010
Cc: Agatha Isabelle Moreira <[email protected]>
Signed-off-by: Mehdi Hassan <[email protected]>
---
 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.