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

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

Advertisement

Kernel v2.6.24.5 /fs/aio.c

Filename:/fs/aio.c
Lines Added:8
Lines Deleted:0
Also changed in: (Previous) 2.6.24.4  2.6.24.4-rc3  2.6.24.4-rc2  2.6.24.4-rc1  2.6.24-git22  2.6.24-git21 
(Following) 2.6.24.6  2.6.24.7  2.6.25-git12  2.6.25-git13  2.6.25.1-rc1  2.6.25-git14 

Location
[  2.6.24.5
  [  fs
     o  aio.c

Patch

diff --git a/fs/aio.c b/fs/aio.c
index 9dec7d2..758f911 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -997,6 +997,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.