wasmer_wasix/journal/effector/syscalls/
path_link.rs1use super::*;
2
3impl JournalEffector {
4 pub fn save_path_link(
5 ctx: &mut FunctionEnvMut<'_, WasiEnv>,
6 old_fd: Fd,
7 old_flags: LookupFlags,
8 old_path: String,
9 new_fd: Fd,
10 new_path: String,
11 ) -> anyhow::Result<()> {
12 Self::save_event(
13 ctx,
14 JournalEntry::CreateHardLinkV1 {
15 old_fd,
16 old_flags,
17 old_path: old_path.into(),
18 new_fd,
19 new_path: new_path.into(),
20 },
21 )
22 }
23
24 pub fn apply_path_link(
25 ctx: &mut FunctionEnvMut<'_, WasiEnv>,
26 old_fd: Fd,
27 old_flags: LookupFlags,
28 old_path: &str,
29 new_fd: Fd,
30 new_path: &str,
31 ) -> anyhow::Result<()> {
32 crate::syscalls::path_link_internal(ctx, old_fd, old_flags, old_path, new_fd, new_path)
33 .map_err(|err| {
34 anyhow::format_err!(
35 "journal restore error: failed to create hard link (old_fd={old_fd}, old_flags={old_flags}, old_path={old_path}, new_fd={new_fd}, new_path={new_path}) - {err}")
36 })?;
37 Ok(())
38 }
39}