public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add ENOSYS into sys_io_cancel
@ 2005-07-11 19:06 Wendy Cheng
  2005-07-12  1:48 ` Benjamin LaHaise
  0 siblings, 1 reply; 5+ messages in thread
From: Wendy Cheng @ 2005-07-11 19:06 UTC (permalink / raw)
  To: bcrl; +Cc: linux-kernel

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

Previously sent via private mail that doesn't seem to go thru - resend 
via office mailer.

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 -EGAIN. This gives applications a 
wrong impression that this call is implemented but just never works. We 
have customer inquires about this issue.

Upload a trivial patch to address this confusion.

-- Wendy



[-- Attachment #2: cancel.patch --]
[-- Type: text/plain, Size: 623 bytes --]

--- linux-2.6.12/fs/aio.c	2005-06-17 15:48:29.000000000 -0400
+++ linux/fs/aio.c	2005-07-10 12:48:14.000000000 -0400
@@ -1641,8 +1641,9 @@ asmlinkage long sys_io_cancel(aio_contex
 		cancel = kiocb->ki_cancel;
 		kiocb->ki_users ++;
 		kiocbSetCancelled(kiocb);
-	} else
+	} else 
 		cancel = NULL;
+	 
 	spin_unlock_irq(&ctx->ctx_lock);
 
 	if (NULL != cancel) {
@@ -1659,8 +1660,10 @@ asmlinkage long sys_io_cancel(aio_contex
 			if (copy_to_user(result, &tmp, sizeof(tmp)))
 				ret = -EFAULT;
 		}
-	} else
+	} else {
+		ret = -ENOSYS;
 		printk(KERN_DEBUG "iocb has no cancel operation\n");
+	} 
 
 	put_ioctx(ctx);
 

^ permalink raw reply	[flat|nested] 5+ messages in thread
* [PATCH] Add ENOSYS into sys_io_cancel
@ 2005-07-10 18:25 Shiow-wen Cheng
  0 siblings, 0 replies; 5+ messages in thread
From: Shiow-wen Cheng @ 2005-07-10 18:25 UTC (permalink / raw)
  To: bcrl; +Cc: linux-kernel

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

Other than few exceptions (e.g. usb/gadget), none of
the current filesystems and/or drivers that has
io_cancel implemented (kiocb->ki_cancel left with
NULL). However, the io_cancel() system call
(sys_io_cancel) somehow universally sets return code
to -EAGAIN. This gives us a false impression that
io_cancel() is supported (implemented) but just never
works - would appreciate if this patch is taken.

-- s.w.

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

[-- Attachment #2: 3748003194-cancel.patch --]
[-- Type: application/octet-stream, Size: 623 bytes --]

--- linux-2.6.12/fs/aio.c	2005-06-17 15:48:29.000000000 -0400
+++ linux/fs/aio.c	2005-07-10 12:48:14.000000000 -0400
@@ -1641,8 +1641,9 @@ asmlinkage long sys_io_cancel(aio_contex
 		cancel = kiocb->ki_cancel;
 		kiocb->ki_users ++;
 		kiocbSetCancelled(kiocb);
-	} else
+	} else 
 		cancel = NULL;
+	 
 	spin_unlock_irq(&ctx->ctx_lock);
 
 	if (NULL != cancel) {
@@ -1659,8 +1660,10 @@ asmlinkage long sys_io_cancel(aio_contex
 			if (copy_to_user(result, &tmp, sizeof(tmp)))
 				ret = -EFAULT;
 		}
-	} else
+	} else {
+		ret = -ENOSYS;
 		printk(KERN_DEBUG "iocb has no cancel operation\n");
+	} 
 
 	put_ioctx(ctx);
 

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

end of thread, other threads:[~2005-07-12 16:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-11 19:06 [PATCH] Add ENOSYS into sys_io_cancel Wendy Cheng
2005-07-12  1:48 ` Benjamin LaHaise
2005-07-12 15:49   ` Wendy Cheng
2005-07-12 16:05     ` Benjamin LaHaise
  -- strict thread matches above, loose matches on Subject: below --
2005-07-10 18:25 Shiow-wen Cheng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox