X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fmpi%2Fwrite_append_truncate.c;h=5df12023b9c5ff1cb97c1e2424eeabe07fc724d3;hb=5093fef8392c866f1998d6e68b6536d10daabb4d;hp=bae9ba4438deb25d09d5f0e188551f956aa23233;hpb=20227aaa0d5d4622cb87c3b19761363543895116;p=fs%2Flustre-release.git diff --git a/lustre/tests/mpi/write_append_truncate.c b/lustre/tests/mpi/write_append_truncate.c index bae9ba4..5df1202 100644 --- a/lustre/tests/mpi/write_append_truncate.c +++ b/lustre/tests/mpi/write_append_truncate.c @@ -26,7 +26,7 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. */ /* @@ -369,15 +369,17 @@ int main(int argc, char *argv[]) done = 0; do { ret = write(fd, write_buf+done,write_size-done); - if (verbose > 1 || ret <= 0) { - rprintf(rank, n, ret <= 0, + if (verbose > 1 || ret < 0) { + rprintf(rank, n, + ret < 0 && errno != EINTR, "write %d/%d @ %d: %s\n", ret + done, write_size, done, strerror(errno)); - if (ret <= 0) + if (ret < 0 && errno != EINTR) break; } - done += ret; + if (ret > 0) + done += ret; } while (done != write_size); } @@ -396,17 +398,19 @@ int main(int argc, char *argv[]) ret = write(fd, append_buf + done, append_size - done); if (ret < 0) { - rprintf(rank, n, ret < 0, + rprintf(rank, n, errno != EINTR, "append %u/%u: %s\n", ret + done, append_size, strerror(errno)); - break; + if (errno != EINTR) + break; } else if (verbose > 1 || ret != append_size) { rprintf(rank, n, ret != append_size, "append %u/%u\n", ret + done, append_size); } - done += ret; + if (ret > 0) + done += ret; } while (done != append_size); } else if (rank == trunc_rank) { /* XXX: truncating the same file descriptor as the @@ -523,6 +527,7 @@ int main(int argc, char *argv[]) if (error == 1) { char command[4096]; + int rc; rprintf(rank, n, 0, STATUS_FMT"\n", write_char, write_size, write_size, @@ -530,7 +535,7 @@ int main(int argc, char *argv[]) trunc_offset, trunc_offset); sprintf(command, "od -Ax -a %s", fnames[0]); - system(command); + rc = system(command); MPI_Abort(MPI_COMM_WORLD, 1); } }