summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkoverstreet <kent.overstreet@gmail.com>2024-06-03 17:01:22 -0400
committerGitHub <noreply@github.com>2024-06-03 17:01:22 -0400
commitd456f9e97aebe649a59cc2858d5f28749b77d1d0 (patch)
tree8973c259678eaacb39c75545656c4611b24ab77d
parent587f7f5a4765a76f9ea05159963d14f8967cb45b (diff)
parent30e16b5e15ff86b6ead0608cbd9f8bf43ab045dd (diff)
Merge pull request #291 from tmuehlbacher/fix-subvolume-commands
Fix subvolume commands
-rw-r--r--src/key.rs4
-rw-r--r--src/wrappers/handle.rs4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/key.rs b/src/key.rs
index 558c5b91..54959d6e 100644
--- a/src/key.rs
+++ b/src/key.rs
@@ -11,7 +11,7 @@ use std::{
use anyhow::{anyhow, ensure, Result};
use bch_bindgen::{
bcachefs::{self, bch_key, bch_sb_handle},
- c::bch2_chacha_encrypt_key,
+ c::{bch2_chacha_encrypt_key, bch_sb_field_crypt},
keyutils::{self, keyctl_search},
};
use byteorder::{LittleEndian, ReadBytesExt};
@@ -66,7 +66,7 @@ impl KeyHandle {
let bch_key_magic = BCH_KEY_MAGIC.as_bytes().read_u64::<LittleEndian>().unwrap();
let crypt = sb.sb().crypt().unwrap();
- let crypt_ptr = ptr::addr_of!(*crypt).cast_mut();
+ let crypt_ptr = (crypt as *const bch_sb_field_crypt).cast_mut();
let mut output: bch_key =
unsafe { bcachefs::derive_passphrase(crypt_ptr, passphrase.get().as_ptr()) };
diff --git a/src/wrappers/handle.rs b/src/wrappers/handle.rs
index b5b49628..b9a4a63d 100644
--- a/src/wrappers/handle.rs
+++ b/src/wrappers/handle.rs
@@ -1,4 +1,4 @@
-use std::{path::Path, ptr};
+use std::path::Path;
use bch_bindgen::c::{
bcache_fs_close, bcache_fs_open, bch_ioctl_subvolume, bchfs_handle, BCH_IOCTL_SUBVOLUME_CREATE,
@@ -42,7 +42,7 @@ pub enum BcachefsIoctlPayload {
impl From<&BcachefsIoctlPayload> for *const libc::c_void {
fn from(value: &BcachefsIoctlPayload) -> Self {
match value {
- BcachefsIoctlPayload::Subvolume(p) => ptr::addr_of!(p).cast(),
+ BcachefsIoctlPayload::Subvolume(p) => (p as *const bch_ioctl_subvolume).cast(),
}
}
}