kernel: fix kfdwrite signature to match RB-modified trait (add arg param, cloexec field)

The RB fork's KernelScheme trait has an extra 'arg: u64' parameter in
kfdwrite (not in upstream). Also RB's FileDescriptor has a 'cloexec' field.
Both are now handled correctly.
This commit is contained in:
2026-07-11 23:00:30 +03:00
parent 6933d715a2
commit 19b936efff
+3 -1
View File
@@ -940,6 +940,7 @@ impl KernelScheme for ProcScheme {
id: usize, id: usize,
descs: Vec<Arc<context::file::LockedFileDescription>>, descs: Vec<Arc<context::file::LockedFileDescription>>,
flags: CallFlags, flags: CallFlags,
_arg: u64,
metadata: &[u64], metadata: &[u64],
token: &mut CleanLockToken, token: &mut CleanLockToken,
) -> Result<usize> { ) -> Result<usize> {
@@ -969,7 +970,7 @@ impl KernelScheme for ProcScheme {
file.close(token)?; file.close(token)?;
} }
let mut file = descs.get(0).unwrap(); let file = descs.get(0).unwrap();
let mut context = context.write(token.token()); let mut context = context.write(token.token());
let (context, mut token) = context.token_split(); let (context, mut token) = context.token_split();
context context
@@ -977,6 +978,7 @@ impl KernelScheme for ProcScheme {
FileHandle(usize::try_from(*target_fd).map_err(|_| Error::new(EBADFD))?), FileHandle(usize::try_from(*target_fd).map_err(|_| Error::new(EBADFD))?),
context::file::FileDescriptor { context::file::FileDescriptor {
description: file.clone(), description: file.clone(),
cloexec: false,
}, },
&mut token, &mut token,
) )