From: Mateusz Guzik Date: Wed, 13 Nov 2024 15:51:03 +0000 (+0100) Subject: vfs: make evict() use smp_mb__after_spinlock instead of smp_mb X-Git-Url: https://repo.jachan.dev/J-linux.git/commitdiff_plain/45c9faf50665812a14fc9b40ab9d6cb893792ffd vfs: make evict() use smp_mb__after_spinlock instead of smp_mb It literally directly follows a spin_lock() call. This whacks an explicit barrier on x86-64. Signed-off-by: Mateusz Guzik Link: https://lore.kernel.org/r/20241113155103.4194099-1-mjguzik@gmail.com Reviewed-by: Jan Kara Signed-off-by: Christian Brauner --- diff --git a/fs/inode.c b/fs/inode.c index d7a0c36e1ba6..84ab7b209b38 100644 --- 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);