Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.25-rc6-git8 /fs/aio.c

Filename:/fs/aio.c
Lines Added:8
Lines Deleted:0
Also changed in: (Previous) 2.6.25-rc6-git7  2.6.25-rc6-git6  2.6.25-rc6-git5  2.6.25-rc6-git4  2.6.25-rc6  2.6.25-rc5 
(Following) 2.6.25-rc7  2.6.25-rc8  2.6.25-rc8-git9  2.6.25-rc8-git10  2.6.25-rc9  2.6.25 

Location
[  2.6.25-rc6-git8
  [  fs
     o  aio.c

Patch

diff --git a/fs/aio.c b/fs/aio.c
index b74c567..6af9219 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -996,6 +996,14 @@ put_rq:
    /* everything turned out well, dispose of the aiocb. */
    ret = __aio_put_req(ctx, iocb);
 
+   /*
+    * We have to order our ring_info tail store above and test
+    * of the wait list below outside the wait lock.  This is
+    * like in wake_up_bit() where clearing a bit has to be
+    * ordered with the unlocked test.
+    */
+   smp_mb();
+
    if (waitqueue_active(&ctx->wait))
       wake_up(&ctx->wait);
 


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.