diff --git a/fs/aio.c b/fs/aio.c
index 38f62680fd63d70c96204c658b7a7aeedda23bd5..0e11e31dbb77147078b79eaad3fc97c70b79321d 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -562,6 +562,7 @@ static inline void lock_kiocb(struct kiocb *iocb)
 static inline void unlock_kiocb(struct kiocb *iocb)
 {
 	kiocbClearLocked(iocb);
+	smp_mb__after_clear_bit();
 	wake_up_bit(&iocb->ki_flags, KIF_LOCKED);
 }