diff options
| author | Ron Yorston <rmy@pobox.com> | 2023-01-05 08:56:27 +0000 |
|---|---|---|
| committer | Ron Yorston <rmy@pobox.com> | 2023-01-05 08:56:27 +0000 |
| commit | e5e4a2fec5435192d1672e6db2f335cb5e89f877 (patch) | |
| tree | 08cb827a40817ea4824bc9336d57eda669c4d4b2 /coreutils | |
| parent | 4343f3926355f55fc023203c992527fc34bf609e (diff) | |
| parent | b1884deb514c35289d37e7bfbf23f770b0bd09b3 (diff) | |
| download | busybox-w32-e5e4a2fec5435192d1672e6db2f335cb5e89f877.tar.gz busybox-w32-e5e4a2fec5435192d1672e6db2f335cb5e89f877.tar.bz2 busybox-w32-e5e4a2fec5435192d1672e6db2f335cb5e89f877.zip | |
Merge branch 'busybox' into merge
Diffstat (limited to 'coreutils')
| -rw-r--r-- | coreutils/dd.c | 20 | ||||
| -rw-r--r-- | coreutils/mv.c | 4 |
2 files changed, 20 insertions, 4 deletions
diff --git a/coreutils/dd.c b/coreutils/dd.c index a3c9ababf..a704ca99b 100644 --- a/coreutils/dd.c +++ b/coreutils/dd.c | |||
| @@ -203,6 +203,7 @@ static void dd_output_status(int UNUSED_PARAM cur_signal) | |||
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | #if ENABLE_FEATURE_DD_IBS_OBS | 205 | #if ENABLE_FEATURE_DD_IBS_OBS |
| 206 | # ifdef O_DIRECT | ||
| 206 | static int clear_O_DIRECT(int fd) | 207 | static int clear_O_DIRECT(int fd) |
| 207 | { | 208 | { |
| 208 | if (errno == EINVAL) { | 209 | if (errno == EINVAL) { |
| @@ -214,6 +215,7 @@ static int clear_O_DIRECT(int fd) | |||
| 214 | } | 215 | } |
| 215 | return 0; | 216 | return 0; |
| 216 | } | 217 | } |
| 218 | # endif | ||
| 217 | #endif | 219 | #endif |
| 218 | 220 | ||
| 219 | static ssize_t dd_read(void *ibuf, size_t ibs) | 221 | static ssize_t dd_read(void *ibuf, size_t ibs) |
| @@ -228,8 +230,10 @@ static ssize_t dd_read(void *ibuf, size_t ibs) | |||
| 228 | #endif | 230 | #endif |
| 229 | n = safe_read(ifd, ibuf, ibs); | 231 | n = safe_read(ifd, ibuf, ibs); |
| 230 | #if ENABLE_FEATURE_DD_IBS_OBS | 232 | #if ENABLE_FEATURE_DD_IBS_OBS |
| 233 | # ifdef O_DIRECT | ||
| 231 | if (n < 0 && (G.flags & FLAG_IDIRECT) && clear_O_DIRECT(ifd)) | 234 | if (n < 0 && (G.flags & FLAG_IDIRECT) && clear_O_DIRECT(ifd)) |
| 232 | goto read_again; | 235 | goto read_again; |
| 236 | # endif | ||
| 233 | #endif | 237 | #endif |
| 234 | return n; | 238 | return n; |
| 235 | } | 239 | } |
| @@ -242,8 +246,10 @@ static bool write_and_stats(const void *buf, size_t len, size_t obs, | |||
| 242 | IF_FEATURE_DD_IBS_OBS(write_again:) | 246 | IF_FEATURE_DD_IBS_OBS(write_again:) |
| 243 | n = full_write(ofd, buf, len); | 247 | n = full_write(ofd, buf, len); |
| 244 | #if ENABLE_FEATURE_DD_IBS_OBS | 248 | #if ENABLE_FEATURE_DD_IBS_OBS |
| 249 | # ifdef O_DIRECT | ||
| 245 | if (n < 0 && (G.flags & FLAG_ODIRECT) && clear_O_DIRECT(ofd)) | 250 | if (n < 0 && (G.flags & FLAG_ODIRECT) && clear_O_DIRECT(ofd)) |
| 246 | goto write_again; | 251 | goto write_again; |
| 252 | # endif | ||
| 247 | #endif | 253 | #endif |
| 248 | 254 | ||
| 249 | #if ENABLE_FEATURE_DD_THIRD_STATUS_LINE | 255 | #if ENABLE_FEATURE_DD_THIRD_STATUS_LINE |
| @@ -506,8 +512,13 @@ int dd_main(int argc UNUSED_PARAM, char **argv) | |||
| 506 | if (infile) { | 512 | if (infile) { |
| 507 | int iflag = O_RDONLY; | 513 | int iflag = O_RDONLY; |
| 508 | #if ENABLE_FEATURE_DD_IBS_OBS | 514 | #if ENABLE_FEATURE_DD_IBS_OBS |
| 509 | if (G.flags & FLAG_IDIRECT) | 515 | if (G.flags & FLAG_IDIRECT) { |
| 516 | # ifdef O_DIRECT | ||
| 510 | iflag |= O_DIRECT; | 517 | iflag |= O_DIRECT; |
| 518 | # else | ||
| 519 | bb_error_msg_and_die("O_DIRECT not supported on this platform"); | ||
| 520 | # endif | ||
| 521 | } | ||
| 511 | #endif | 522 | #endif |
| 512 | xmove_fd(MINGW_SPECIAL(xopen)(infile, iflag), ifd); | 523 | xmove_fd(MINGW_SPECIAL(xopen)(infile, iflag), ifd); |
| 513 | #if ENABLE_PLATFORM_MINGW32 | 524 | #if ENABLE_PLATFORM_MINGW32 |
| @@ -524,8 +535,13 @@ int dd_main(int argc UNUSED_PARAM, char **argv) | |||
| 524 | if (G.flags & FLAG_APPEND) | 535 | if (G.flags & FLAG_APPEND) |
| 525 | oflag |= O_APPEND; | 536 | oflag |= O_APPEND; |
| 526 | #if ENABLE_FEATURE_DD_IBS_OBS | 537 | #if ENABLE_FEATURE_DD_IBS_OBS |
| 527 | if (G.flags & FLAG_ODIRECT) | 538 | if (G.flags & FLAG_ODIRECT) { |
| 539 | # ifdef O_DIRECT | ||
| 528 | oflag |= O_DIRECT; | 540 | oflag |= O_DIRECT; |
| 541 | # else | ||
| 542 | bb_error_msg_and_die("O_DIRECT not supported on this platform"); | ||
| 543 | # endif | ||
| 544 | } | ||
| 529 | #endif | 545 | #endif |
| 530 | xmove_fd(xopen(outfile, oflag), ofd); | 546 | xmove_fd(xopen(outfile, oflag), ofd); |
| 531 | 547 | ||
diff --git a/coreutils/mv.c b/coreutils/mv.c index fd2422683..cf6169a1e 100644 --- a/coreutils/mv.c +++ b/coreutils/mv.c | |||
| @@ -71,9 +71,9 @@ int mv_main(int argc, char **argv) | |||
| 71 | "no-target-directory\0" No_argument "T" | 71 | "no-target-directory\0" No_argument "T" |
| 72 | "target-directory\0" Required_argument "t" | 72 | "target-directory\0" Required_argument "t" |
| 73 | IF_FEATURE_VERBOSE( | 73 | IF_FEATURE_VERBOSE( |
| 74 | "verbose\0" No_argument "v", | 74 | "verbose\0" No_argument "v" |
| 75 | &last | ||
| 76 | ) | 75 | ) |
| 76 | , &last | ||
| 77 | ); | 77 | ); |
| 78 | argc -= optind; | 78 | argc -= optind; |
| 79 | argv += optind; | 79 | argv += optind; |
