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:
+3
-1
@@ -940,6 +940,7 @@ impl KernelScheme for ProcScheme {
|
||||
id: usize,
|
||||
descs: Vec<Arc<context::file::LockedFileDescription>>,
|
||||
flags: CallFlags,
|
||||
_arg: u64,
|
||||
metadata: &[u64],
|
||||
token: &mut CleanLockToken,
|
||||
) -> Result<usize> {
|
||||
@@ -969,7 +970,7 @@ impl KernelScheme for ProcScheme {
|
||||
file.close(token)?;
|
||||
}
|
||||
|
||||
let mut file = descs.get(0).unwrap();
|
||||
let file = descs.get(0).unwrap();
|
||||
let mut context = context.write(token.token());
|
||||
let (context, mut token) = context.token_split();
|
||||
context
|
||||
@@ -977,6 +978,7 @@ impl KernelScheme for ProcScheme {
|
||||
FileHandle(usize::try_from(*target_fd).map_err(|_| Error::new(EBADFD))?),
|
||||
context::file::FileDescriptor {
|
||||
description: file.clone(),
|
||||
cloexec: false,
|
||||
},
|
||||
&mut token,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user