diff options
-rw-r--r-- | coreutils/dd.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/coreutils/dd.c b/coreutils/dd.c index 53c3bdc81..e046ff5cc 100644 --- a/coreutils/dd.c +++ b/coreutils/dd.c | |||
@@ -440,8 +440,10 @@ int dd_main(int argc UNUSED_PARAM, char **argv) | |||
440 | oc = 0; | 440 | oc = 0; |
441 | } | 441 | } |
442 | } | 442 | } |
443 | } else if (write_and_stats(ibuf, n, obs, outfile)) | 443 | } else { |
444 | goto out_status; | 444 | if (write_and_stats(ibuf, n, obs, outfile)) |
445 | goto out_status; | ||
446 | } | ||
445 | 447 | ||
446 | if (flags & FLAG_FSYNC) { | 448 | if (flags & FLAG_FSYNC) { |
447 | if (fsync(ofd) < 0) | 449 | if (fsync(ofd) < 0) |
@@ -450,9 +452,8 @@ int dd_main(int argc UNUSED_PARAM, char **argv) | |||
450 | } | 452 | } |
451 | 453 | ||
452 | if (ENABLE_FEATURE_DD_IBS_OBS && oc) { | 454 | if (ENABLE_FEATURE_DD_IBS_OBS && oc) { |
453 | ssize_t w = full_write_or_warn(obuf, oc, outfile); | 455 | if (write_and_stats(obuf, oc, obs, outfile)) |
454 | if (w < 0) goto out_status; | 456 | goto out_status; |
455 | if (w > 0) G.out_part++; | ||
456 | } | 457 | } |
457 | if (close(ifd) < 0) { | 458 | if (close(ifd) < 0) { |
458 | die_infile: | 459 | die_infile: |