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    [W:0.037 / U:0.224 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site