wasmer_wasix/journal/effector/syscalls/
path_link.rs

1use 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}