All of lore.kernel.org
 help / color / mirror / Atom feed
* [2.6.18-rc* PATCH RFC]: Correct ambiguous errno of aio
@ 2006-08-29 13:21 Yi Yang
  2006-08-29 18:32 ` Zach Brown
  0 siblings, 1 reply; 6+ messages in thread
From: Yi Yang @ 2006-08-29 13:21 UTC (permalink / raw)
  To: linux-kernel

Sorry, the last post is corrupted by email client, this is a repost.

In the current implementation of AIO, for the operation IOCB_CMD_FDSYNC

and IOCB_CMD_FSYNC, the returned errno is -EINVAL although the kernel

does know them, I think the correct errno should be -EOPNOTSUPP which

means they aren't be implemented or supported.

--- a/fs/aio.c.orig	2006-08-28 15:15:18.000000000 +0800
+++ b/fs/aio.c	2006-08-28 15:33:59.000000000 +0800
@@ -1363,20 +1363,10 @@ static ssize_t aio_pwrite(struct kiocb *
 	return ret;
 }
 
-static ssize_t aio_fdsync(struct kiocb *iocb)
-{
-	struct file *file = iocb->ki_filp;
-	ssize_t ret = -EINVAL;
-
-	if (file->f_op->aio_fsync)
-		ret = file->f_op->aio_fsync(iocb, 1);
-	return ret;
-}
-
 static ssize_t aio_fsync(struct kiocb *iocb)
 {
 	struct file *file = iocb->ki_filp;
-	ssize_t ret = -EINVAL;
+	ssize_t ret = -EOPNOTSUPP;
 
 	if (file->f_op->aio_fsync)
 		ret = file->f_op->aio_fsync(iocb, 0);
@@ -1425,12 +1415,12 @@ static ssize_t aio_setup_iocb(struct kio
 			kiocb->ki_retry = aio_pwrite;
 		break;
 	case IOCB_CMD_FDSYNC:
-		ret = -EINVAL;
+		ret = -EOPNOTSUPP;
 		if (file->f_op->aio_fsync)
-			kiocb->ki_retry = aio_fdsync;
+			kiocb->ki_retry = aio_fsync;
 		break;
 	case IOCB_CMD_FSYNC:
-		ret = -EINVAL;
+		ret = -EOPNOTSUPP;
 		if (file->f_op->aio_fsync)
 			kiocb->ki_retry = aio_fsync;
 		break;



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

end of thread, other threads:[~2006-08-30 16:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-29 13:21 [2.6.18-rc* PATCH RFC]: Correct ambiguous errno of aio Yi Yang
2006-08-29 18:32 ` Zach Brown
2006-08-29 19:04   ` Benjamin LaHaise
2006-08-30 14:19   ` [2.6.18-rc5 PATCH]: aio cleanup Yi Yang
2006-08-30 16:30     ` Zach Brown
     [not found]   ` <4c4443230608300651n34e8dbbdn8749c6874ce8791@mail.gmail.com>
2006-08-30 16:35     ` [2.6.18-rc* PATCH RFC]: Correct ambiguous errno of aio Zach Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.