From 78cc6399c90b297c94eb367f223d1aa714210c8b Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Sat, 6 Jun 2026 21:13:39 +0900 Subject: [PATCH] split: read ahead input --- Cargo.lock | 1 + fuzz/Cargo.lock | 1 + src/uu/split/Cargo.toml | 1 + src/uu/split/src/split.rs | 2 ++ 4 files changed, 5 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 6bea0cd88..dd9f31c65 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4138,6 +4138,7 @@ dependencies = [ "codspeed-divan-compat", "fluent", "memchr", + "rustix", "tempfile", "thiserror 2.0.18", "uucore", diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index 234ea76a6..8b2870c66 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -2066,6 +2066,7 @@ dependencies = [ "clap", "fluent", "memchr", + "rustix", "thiserror", "uucore", ] diff --git a/src/uu/split/Cargo.toml b/src/uu/split/Cargo.toml index 84e3b246e..60dbba0dd 100644 --- a/src/uu/split/Cargo.toml +++ b/src/uu/split/Cargo.toml @@ -21,6 +21,7 @@ doctest = false [dependencies] clap = { workspace = true } memchr = { workspace = true } +rustix = { workspace = true } uucore = { workspace = true, features = ["fs", "parser-size"] } thiserror = { workspace = true } fluent = { workspace = true } diff --git a/src/uu/split/src/split.rs b/src/uu/split/src/split.rs index 1e790a364..ace96a746 100644 --- a/src/uu/split/src/split.rs +++ b/src/uu/split/src/split.rs @@ -1539,6 +1539,8 @@ fn split(settings: &Settings) -> UResult<()> { let r = File::open(Path::new(&settings.input)).map_err_context( || translate!("split-error-cannot-open-for-reading", "file" => settings.input.quote()), )?; + #[cfg(any(target_os = "linux", target_os = "android", target_os = "freebsd"))] + let _ = rustix::fs::fadvise(&r, 0, None, rustix::fs::Advice::Sequential); Box::new(r) as Box }; let mut reader = if let Some(c) = settings.io_blksize {