fn fileSetOwner( userdata: ?*anyopaque, file: File, owner: ?File.Uid, group: ?File.Gid, ) File.SetOwnerError!void
fn fileSetOwner( userdata: ?*anyopaque, file: File, owner: ?File.Uid, group: ?File.Gid, ) File.SetOwnerError!void { const ev: *Evented = @ptrCast(@alignCast(userdata)); var sync: CancelRegion.Sync = try .init(ev); defer sync.deinit(ev); try ev.fchownat( &sync, file.handle, "", owner orelse std.math.maxInt(linux.uid_t), group orelse std.math.maxInt(linux.gid_t), linux.AT.EMPTY_PATH, ); }