summaryrefslogtreecommitdiffstats
path: root/fs/aio.c
diff options
context:
space:
mode:
authorAnton Altaparmakov <aia21@cantab.net>2005-06-30 10:52:20 +0200
committerAnton Altaparmakov <aia21@cantab.net>2005-06-30 10:52:20 +0200
commitc2d9b8387bce8b4a0fd402fab7dc1319d11a418d (patch)
tree082cf7dd287f61635198011e61c3de1be130cc42 /fs/aio.c
parentAutomatic merge with /usr/src/ntfs-2.6.git. (diff)
parentMerge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 (diff)
downloadlinux-c2d9b8387bce8b4a0fd402fab7dc1319d11a418d.tar.xz
linux-c2d9b8387bce8b4a0fd402fab7dc1319d11a418d.zip
Automerge with /usr/src/ntfs-2.6.git.
Diffstat (limited to 'fs/aio.c')
-rw-r--r--fs/aio.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/aio.c b/fs/aio.c
index 7afa222f6802..06d7d4390fe7 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -58,6 +58,7 @@ static DEFINE_SPINLOCK(fput_lock);
static LIST_HEAD(fput_head);
static void aio_kick_handler(void *);
+static void aio_queue_work(struct kioctx *);
/* aio_setup
* Creates the slab caches used by the aio routines, panic on
@@ -747,6 +748,14 @@ out:
* has already been kicked */
if (kiocbIsKicked(iocb)) {
__queue_kicked_iocb(iocb);
+
+ /*
+ * __queue_kicked_iocb will always return 1 here, because
+ * iocb->ki_run_list is empty at this point so it should
+ * be safe to unconditionally queue the context into the
+ * work queue.
+ */
+ aio_queue_work(ctx);
}
}
return ret;