LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] aio_write should tell userspace about partial writes
@ 2008-03-11 22:39 Rusty Russell
  2008-03-12 19:59 ` Linus Torvalds
  0 siblings, 1 reply; 3+ messages in thread
From: Rusty Russell @ 2008-03-11 22:39 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Andrew Morton, linux-kernel, Zach Brown, bcrl, linux-aio

[ Linus, please apply.  This patch was discussed and acked before,
  but somehow got lost. ]

When an AIO write gets a non-retry error after writing some data
(eg. ENOSPC), it should return the amount written already, not the
error.  Just like write() is supposed to.

This was found by the libaio test suite.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-By: Zach Brown <zach.brown@oracle.com>
---
 fs/aio.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff -r c36fc295bb75 fs/aio.c
--- a/fs/aio.c	Tue Mar 11 09:04:47 2008 +1100
+++ b/fs/aio.c	Tue Mar 11 09:05:54 2008 +1100
@@ -1358,6 +1358,13 @@ static ssize_t aio_rw_vect_retry(struct 
 	    && iocb->ki_nbytes - iocb->ki_left)
 		ret = iocb->ki_nbytes - iocb->ki_left;
 
+	/* If we managed to write some out we return that, rather than
+	 * the eventual error. */
+	if (opcode == IOCB_CMD_PWRITEV
+	    && ret < 0 && ret != -EIOCBQUEUED && ret != -EIOCBRETRY
+	    && iocb->ki_nbytes - iocb->ki_left)
+		ret = iocb->ki_nbytes - iocb->ki_left;
+
 	return ret;
 }
 

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

* Re: [PATCH] aio_write should tell userspace about partial writes
  2008-03-11 22:39 [PATCH] aio_write should tell userspace about partial writes Rusty Russell
@ 2008-03-12 19:59 ` Linus Torvalds
  2008-03-12 22:12   ` Rusty Russell
  0 siblings, 1 reply; 3+ messages in thread
From: Linus Torvalds @ 2008-03-12 19:59 UTC (permalink / raw)
  To: Rusty Russell; +Cc: Andrew Morton, linux-kernel, Zach Brown, bcrl, linux-aio



On Wed, 12 Mar 2008, Rusty Russell wrote:
>
> [ Linus, please apply.  This patch was discussed and acked before,
>   but somehow got lost. ]

Rusty, please *look* at your patches.

It's pretty obvious even from just the patch that the patch has already 
been applied, and that the only reason you think it hasn't is that you use 
some crap-for-brains SCM model where you apply patches with GNU patch and 
allow fuzz, so it applied cleanly *again*.

I assume that it's quilt messing up again.

In particular, this already went in as commit 
7adfa2ff3efa02a7a9f2632d2d2662d3e5eb5304, and I know for a *fact* that it 
is in your tree too, since the patch itself clearly has that code double:

>  	    && iocb->ki_nbytes - iocb->ki_left)
>  		ret = iocb->ki_nbytes - iocb->ki_left;

Lookie above: those two lines are part of the thing that already got 
applied! If it hadn't been applied, it would look like

        if ((ret == 0) || (iocb->ki_left == 0))
                ret = iocb->ki_nbytes - iocb->ki_left;

instead.

I *hate* people who "merge" using patches, and then to make it even worse 
use a non-zero fuzz factor.

		Linus

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

* Re: [PATCH] aio_write should tell userspace about partial writes
  2008-03-12 19:59 ` Linus Torvalds
@ 2008-03-12 22:12   ` Rusty Russell
  0 siblings, 0 replies; 3+ messages in thread
From: Rusty Russell @ 2008-03-12 22:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Andrew Morton, linux-kernel, Zach Brown, bcrl, linux-aio

On Thursday 13 March 2008 06:59:36 Linus Torvalds wrote:
> On Wed, 12 Mar 2008, Rusty Russell wrote:
> > [ Linus, please apply.  This patch was discussed and acked before,
> >   but somehow got lost. ]
>
> Rusty, please *look* at your patches.

Damn, sorry.  I should never send mail before coffee.

(Actually, I'm sending this before coffee, but that's OK because I can't 
possibly scrwe this up.)

Rusty.

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

end of thread, other threads:[~2008-03-12 22:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-11 22:39 [PATCH] aio_write should tell userspace about partial writes Rusty Russell
2008-03-12 19:59 ` Linus Torvalds
2008-03-12 22:12   ` Rusty Russell

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