Skip to content

Commit 2d9d605

Browse files
committed
fs: added feature to delegate /tmp to uhyve
1 parent 3f9220f commit 2d9d605

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ smp = []
7171
strace = []
7272
tcp = ["net", "smoltcp", "smoltcp/socket-tcp"]
7373
trace = ["smoltcp?/log", "smoltcp?/verbose"]
74+
uhyve-tmp = []
7475
udp = ["net", "smoltcp", "smoltcp/socket-udp"]
7576
vga = []
7677
virtio = ["dep:virtio"]

src/fs/mod.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -340,11 +340,13 @@ pub(crate) fn init() {
340340
const UTC_BUILT_TIME: &str = build_time::build_time_utc!();
341341

342342
FILESYSTEM.set(Filesystem::new()).unwrap();
343-
FILESYSTEM
344-
.get()
345-
.unwrap()
346-
.mkdir("/tmp", AccessPermission::from_bits(0o777).unwrap())
347-
.expect("Unable to create /tmp");
343+
if !(crate::env::is_uhyve() && cfg!(feature = "uhyve-tmp")) {
344+
FILESYSTEM
345+
.get()
346+
.unwrap()
347+
.mkdir("/tmp", AccessPermission::from_bits(0o777).unwrap())
348+
.expect("Unable to create /tmp");
349+
}
348350
FILESYSTEM
349351
.get()
350352
.unwrap()

src/fs/uhyve.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,5 +276,18 @@ pub(crate) fn init() {
276276
)
277277
.expect("Mount failed. Duplicate mount_point?");
278278
}
279+
280+
#[cfg(feature = "uhyve-tmp")]
281+
{
282+
info!("Mounting /tmp as uhyve filesystem");
283+
fs::FILESYSTEM
284+
.get()
285+
.unwrap()
286+
.mount(
287+
"/tmp",
288+
Box::new(UhyveDirectory::new(Some("/tmp".to_string()))),
289+
)
290+
.unwrap();
291+
}
279292
}
280293
}

0 commit comments

Comments
 (0)