projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[powerpc.git]
/
net
/
rxrpc
/
ar-output.c
diff --git
a/net/rxrpc/ar-output.c
b/net/rxrpc/ar-output.c
index
5cdde4a
..
cc9102c
100644
(file)
--- a/
net/rxrpc/ar-output.c
+++ b/
net/rxrpc/ar-output.c
@@
-582,7
+582,7
@@
static int rxrpc_send_data(struct kiocb *iocb,
max &= ~(call->conn->size_align - 1UL);
chunk = max;
max &= ~(call->conn->size_align - 1UL);
chunk = max;
- if (chunk > len)
+ if (chunk > len
&& !more
)
chunk = len;
space = chunk + call->conn->size_align;
chunk = len;
space = chunk + call->conn->size_align;
@@
-640,6
+640,7
@@
static int rxrpc_send_data(struct kiocb *iocb,
goto efault;
sp->remain -= copy;
skb->mark += copy;
goto efault;
sp->remain -= copy;
skb->mark += copy;
+ copied += copy;
len -= copy;
segment -= copy;
len -= copy;
segment -= copy;
@@
-709,6
+710,8
@@
static int rxrpc_send_data(struct kiocb *iocb,
} while (segment > 0);
} while (segment > 0);
+success:
+ ret = copied;
out:
call->tx_pending = skb;
_leave(" = %d", ret);
out:
call->tx_pending = skb;
_leave(" = %d", ret);
@@
-725,7
+728,7
@@
call_aborted:
maybe_error:
if (copied)
maybe_error:
if (copied)
-
ret = copied
;
+
goto success
;
goto out;
efault:
goto out;
efault: