Skip to contentSkip to conversation

aio: fix oops because of extra IO control block freeing.

PATCH New Leonid Ananiev 1 participant 1 message Mar 8, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 3/3 aio: fix oops because of extra IO control block freeing.

From Leonid Ananiev

Clean up unused return values in aio_complete() and aio_run_iocb().

fs/aio.c 2007-03-05 08:46:26.000000000 +0300 renamed from fs/aio.c 2007-03-04 22:55:39.000000000 +0300 +3 -4
diff -uprN -X dontdiff linux-2.6.20-aio22/fs/aio.c linux-2.6.20-aio23/fs/aio.c
@@ -660,7 +660,7 @@ static inline int __queue_kicked_iocb(st
  * simplifies the coding of individual aio operations as
  * it avoids various potential races.
  */
-static ssize_t aio_run_iocb(struct kiocb *iocb)
+static void aio_run_iocb(struct kiocb *iocb)
 {
     struct kioctx    *ctx = iocb->ki_ctx;
     ssize_t (*retry)(struct kiocb *);
@@ -668,7 +668,7 @@ static ssize_t aio_run_iocb(struct kiocb
 
     if (!(retry = iocb->ki_retry)) {
         printk("aio_run_iocb: iocb->ki_retry = NULL\n");
-        return 0;
+        return;
     }
 
     /*
@@ -730,7 +730,6 @@ static ssize_t aio_run_iocb(struct kiocb
     }
 out:
     spin_lock_irq(&ctx->ctx_lock);
-    return ret;
 }
 
 /*
@@ -897,7 +896,7 @@ EXPORT_SYMBOL(kick_iocb);
  *    Returns true if this is the last user of the request.  The
  *    only other user of the request can be the cancellation code.
  */
-int fastcall aio_complete(struct kiocb *iocb, long res, long res2)
+void fastcall aio_complete(struct kiocb *iocb, long res, long res2)
 {
     struct kioctx    *ctx = iocb->ki_ctx;
     struct aio_ring_info    *info;
include/linux/aio.h 2007-03-05 08:46:41.000000000 +0300 renamed from include/linux/aio.h 2007-03-04 22:57:50.000000000 +0300 +1 -1
diff -uprN -X dontdiff linux-2.6.20-aio22/include/linux/aio.h linux-2.6.20-aio23/include/linux/aio.h
@@ -199,7 +199,7 @@ extern unsigned aio_max_size;
 extern ssize_t FASTCALL(wait_on_sync_kiocb(struct kiocb *iocb));
 extern int FASTCALL(aio_put_req(struct kiocb *iocb));
 extern void FASTCALL(kick_iocb(struct kiocb *iocb));
-extern int FASTCALL(aio_complete(struct kiocb *iocb, long res, long res2));
+extern void FASTCALL(aio_complete(struct kiocb *iocb, long res, long res2));
 extern void FASTCALL(__put_ioctx(struct kioctx *ctx));
 struct mm_struct;
 extern void FASTCALL(exit_aio(struct mm_struct *mm));