projects
/
linux-2.6-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2f4d450
)
vfs: make evict() use smp_mb__after_spinlock instead of smp_mb
author
Mateusz Guzik
<mjguzik@gmail.com>
Wed, 13 Nov 2024 15:51:03 +0000
(16:51 +0100)
committer
Christian Brauner
<brauner@kernel.org>
Thu, 14 Nov 2024 09:44:35 +0000
(10:44 +0100)
It literally directly follows a spin_lock() call.
This whacks an explicit barrier on x86-64.
Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
Link:
https://lore.kernel.org/r/20241113155103.4194099-1-mjguzik@gmail.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/inode.c
patch
|
blob
|
blame
|
history
diff --git
a/fs/inode.c
b/fs/inode.c
index d7a0c36e1ba6b9bae6e230b970e57b718c531848..84ab7b209b389d0787d71c282bfa842bcfef503a 100644
(file)
--- a/
fs/inode.c
+++ b/
fs/inode.c
@@
-746,7
+746,7
@@
static void evict(struct inode *inode)
* ___wait_var_event() either sees the bit cleared or
* waitqueue_active() check in wake_up_var() sees the waiter.
*/
- smp_mb();
+ smp_mb
__after_spinlock
();
inode_wake_up_bit(inode, __I_NEW);
BUG_ON(inode->i_state != (I_FREEING | I_CLEAR));
spin_unlock(&inode->i_lock);