[PATCH] Add smp_mb__after_clear_bit() to unlock_kiocb()
Add smp_mb__after_clear_bit() to unlock_kiocb() AIO's use of wait_on_bit_lock()/wake_up_bit() forgot to add a barrier between clearing its lock bit and calling wake_up_bit() so wake_up_bit()'s unlocked waitqueue_active() can race. This puts AIO's use in line with the others and the comment above wake_up_bit(). Signed-off-by: Zach Brown <zach.brown@oracle.com> Acked-by: Benjamin LaHaise <bcrl@linux.intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
8ac2120d90
commit
a464adeb7e
1
fs/aio.c
1
fs/aio.c
@@ -562,6 +562,7 @@ static inline void lock_kiocb(struct kiocb *iocb)
|
|||||||
static inline void unlock_kiocb(struct kiocb *iocb)
|
static inline void unlock_kiocb(struct kiocb *iocb)
|
||||||
{
|
{
|
||||||
kiocbClearLocked(iocb);
|
kiocbClearLocked(iocb);
|
||||||
|
smp_mb__after_clear_bit();
|
||||||
wake_up_bit(&iocb->ki_flags, KIF_LOCKED);
|
wake_up_bit(&iocb->ki_flags, KIF_LOCKED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user