|
@@ -710,18 +710,9 @@ static ssize_t aio_run_iocb(struct kiocb *iocb)
|
|
|
|
|
|
/*
|
|
|
* Now we are all set to call the retry method in async
|
|
|
- * context. By setting this thread's io_wait context
|
|
|
- * to point to the wait queue entry inside the currently
|
|
|
- * running iocb for the duration of the retry, we ensure
|
|
|
- * that async notification wakeups are queued by the
|
|
|
- * operation instead of blocking waits, and when notified,
|
|
|
- * cause the iocb to be kicked for continuation (through
|
|
|
- * the aio_wake_function callback).
|
|
|
+ * context.
|
|
|
*/
|
|
|
- BUG_ON(current->io_wait != NULL);
|
|
|
- current->io_wait = &iocb->ki_wait;
|
|
|
ret = retry(iocb);
|
|
|
- current->io_wait = NULL;
|
|
|
|
|
|
if (ret != -EIOCBRETRY && ret != -EIOCBQUEUED) {
|
|
|
BUG_ON(!list_empty(&iocb->ki_wait.task_list));
|
|
@@ -1508,10 +1499,7 @@ static ssize_t aio_setup_iocb(struct kiocb *kiocb)
|
|
|
* Simply triggers a retry of the operation via kick_iocb.
|
|
|
*
|
|
|
* This callback is specified in the wait queue entry in
|
|
|
- * a kiocb (current->io_wait points to this wait queue
|
|
|
- * entry when an aio operation executes; it is used
|
|
|
- * instead of a synchronous wait when an i/o blocking
|
|
|
- * condition is encountered during aio).
|
|
|
+ * a kiocb.
|
|
|
*
|
|
|
* Note:
|
|
|
* This routine is executed with the wait queue lock held.
|