linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Small bug fix for aio
@ 2003-04-23  1:54 Mingming Cao
  2003-04-24  3:14 ` Benjamin LaHaise
  0 siblings, 1 reply; 3+ messages in thread
From: Mingming Cao @ 2003-04-23  1:54 UTC (permalink / raw)
  To: bcrl, akpm; +Cc: linux-kernel, linux-aio

[-- Attachment #1: Type: text/plain, Size: 199 bytes --]

Hi,

Here is a trivial patch fixed a bug in ioctx_alloc(). If
aio_setup_ring() failed, ioctx_alloc() should pass the return error from
aio_setup_ring() back to sys_io_setup().

Please apply. Thanks.

[-- Attachment #2: aiofix.patch --]
[-- Type: text/x-patch, Size: 887 bytes --]

diff -urNp linux-2.5.68/fs/aio.c 2568/fs/aio.c
--- linux-2.5.68/fs/aio.c	Sat Apr 19 19:49:25 2003
+++ 2568/fs/aio.c	Tue Apr 22 17:52:21 2003
@@ -204,6 +204,7 @@ static struct kioctx *ioctx_alloc(unsign
 {
 	struct mm_struct *mm;
 	struct kioctx *ctx;
+	int ret = 0;
 
 	/* Prevent overflows */
 	if ((nr_events > (0x10000000U / sizeof(struct io_event))) ||
@@ -233,7 +234,8 @@ static struct kioctx *ioctx_alloc(unsign
 	INIT_LIST_HEAD(&ctx->run_list);
 	INIT_WORK(&ctx->wq, aio_kick_handler, ctx);
 
-	if (aio_setup_ring(ctx) < 0)
+	ret = aio_setup_ring(ctx);
+	if (unlikely(ret < 0))
 		goto out_freectx;
 
 	/* limit the number of system wide aios */
@@ -259,7 +261,7 @@ out_cleanup:
 
 out_freectx:
 	kmem_cache_free(kioctx_cachep, ctx);
-	ctx = ERR_PTR(-ENOMEM);
+	ctx = ERR_PTR(ret);
 
 	dprintk("aio: error allocating ioctx %p\n", ctx);
 	return ctx;

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-04-24 20:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-23  1:54 [PATCH] Small bug fix for aio Mingming Cao
2003-04-24  3:14 ` Benjamin LaHaise
2003-04-24 20:21   ` Mingming Cao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).