[PATCH] Add ENOSYS into sys_io_cancel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


--- 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);
 

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux