From: Wendy Cheng <wcheng@redhat.com>
Date: Fri, 9 Sep 2005 20:02:08 +0000 (-0700)
Subject: [PATCH] change io_cancel return code for no cancel case
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8f58202bf6b915656e116ece3bc4ace14bfe533a;p=linux.git

[PATCH] change io_cancel return code for no cancel case

Note that other than few exceptions, most of the current filesystem and/or
drivers do not have aio cancel specifically defined (kiob->ki_cancel field
is mostly NULL).  However, sys_io_cancel system call universally sets
return code to -EAGAIN.  This gives applications a wrong impression that
this call is implemented but just never works.  We have customer inquires
about this issue.

Changed by Benjamin LaHaise to EINVAL instead of ENOSYS

Signed-off-by: S. Wendy Cheng <wcheng@redhat.com>
Acked-by: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---

diff --git a/fs/aio.c b/fs/aio.c
index 4f641abac3c09..769791df36b4f 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -1673,7 +1673,7 @@ asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb,
 				ret = -EFAULT;
 		}
 	} else
-		printk(KERN_DEBUG "iocb has no cancel operation\n");
+		ret = -EINVAL;
 
 	put_ioctx(ctx);