summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-03-12 00:30:48 -0700
committerSascha Hauer <s.hauer@pengutronix.de>2019-03-13 09:41:11 +0100
commitb6bdaf7a4ff3c7b0a89e5c3a5a59ce85894d109c (patch)
tree0da2019fb76ee2538c3537335162602fde4dd504
parenta54a87cfe15b5c3b7c61ea1cc7089050a9e7c63a (diff)
downloadbarebox-b6bdaf7a4ff3c7b0a89e5c3a5a59ce85894d109c.tar.gz
barebox-b6bdaf7a4ff3c7b0a89e5c3a5a59ce85894d109c.tar.xz
commands: memcpy: Make use of write_full()
Change memcpy to rely on write_full() instead of re-implementing it locally. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--commands/memcpy.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/commands/memcpy.c b/commands/memcpy.c
index ddaf767eac..803f06e574 100644
--- a/commands/memcpy.c
+++ b/commands/memcpy.c
@@ -84,7 +84,7 @@ static int do_memcpy(int argc, char *argv[])
buf = xmalloc(RW_BUF_SIZE);
while (count > 0) {
- int now, r, w, tmp;
+ int now, r;
now = min((loff_t)RW_BUF_SIZE, count);
@@ -97,19 +97,9 @@ static int do_memcpy(int argc, char *argv[])
if (!r)
break;
- tmp = 0;
- now = r;
- while (now) {
- w = write(destfd, buf + tmp, now);
- if (w < 0) {
- perror("write");
- goto out;
- }
- if (!w)
- break;
-
- now -= w;
- tmp += w;
+ if (write_full(destfd, buf, r) < 0) {
+ perror("write");
+ goto out;
}
count -= r;