use crate::fs::{Permissions, PermissionsExt}; use rustix::fs::{chmodat, AtFlags, Mode}; use std::path::Path; use std::{fs, io}; pub(crate) fn set_permissions_impl( start: &fs::File, path: &Path, perm: Permissions, ) -> io::Result<()> { if !super::beneath_supported() { return super::super::super::fs::set_permissions_manually(start, path, perm); } Ok(chmodat( start, path, Mode::from_raw_mode(perm.mode() as _), AtFlags::RESOLVE_BENEATH, )?) }