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; |