lkml.org 
[lkml]   [2010]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH][RFC] AIO: always reinitialize iocb->ki_run_list at the end of aio_run_iocb()
On Wed, 28 Apr 2010 02:51:43 +0400
Sergey Temerkhanov <temerkhanov@yandex.ru> wrote:

> This patch makes aio_run_iocb() to always reinitialize iocb->ki_run_list (not
> only when iocb->ki_retry() function returns -EIOCBRETRY) so that subsequent
> call of kick_iocb() will succeed.
>
> Regards, Sergey Temerkhanov,
> Cifronic ZAO.
>
>
> [reinit-ki_run_list.patch text/x-patch (657B)]
> diff -r 97344a0f62c9 fs/aio.c
> --- a/fs/aio.c Tue Apr 27 21:18:14 2010 +0400
> +++ b/fs/aio.c Tue Apr 27 21:30:23 2010 +0400
> @@ -748,6 +748,9 @@
> out:
> spin_lock_irq(&ctx->ctx_lock);
>
> + /* will make __queue_kicked_iocb succeed from here on */
> + INIT_LIST_HEAD(&iocb->ki_run_list);
> +
> if (-EIOCBRETRY == ret) {
> /*
> * OK, now that we are done with this iteration
> @@ -756,8 +759,6 @@
> * "kick" can start the next iteration
> */
>
> - /* will make __queue_kicked_iocb succeed from here on */
> - INIT_LIST_HEAD(&iocb->ki_run_list);
> /* we must queue the next iteration ourselves, if it
> * has already been kicked */
> if (kiocbIsKicked(iocb)) {

I assume that this fixes some runtime problem which you observed?

Can you please describe that problem? This code is pretty old - what
was your application doing that nobody else's application has thus far
done?

Also, please send your Signed-off-by: for this patch, as per
Documentation/Submittingpatches, thanks.



\
 
 \ /
  Last update: 2010-04-28 20:35    [from the cache]
©2003-2011 Jasper Spaans