summaryrefslogtreecommitdiff
path: root/c_src
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-08-18 11:47:26 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-08-18 11:47:26 -0400
commit53e144e93b4edfbf9bf25dd18623163cec8222d0 (patch)
tree3e0975a7319f9924e7668e1baefd9a0300516e97 /c_src
parent8c009da94eb3d06e38c5dca1af499881d317c6ee (diff)
implement BCH_IOCTL_DISK_SET_STATE_v2
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'c_src')
-rw-r--r--c_src/libbcachefs.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/c_src/libbcachefs.h b/c_src/libbcachefs.h
index e562d138..e86893aa 100644
--- a/c_src/libbcachefs.h
+++ b/c_src/libbcachefs.h
@@ -169,13 +169,18 @@ static inline void bchu_disk_offline(struct bchfs_handle fs, unsigned dev_idx,
static inline void bchu_disk_set_state(struct bchfs_handle fs, unsigned dev,
unsigned new_state, unsigned flags)
{
- struct bch_ioctl_disk_set_state i = {
+ char err[8192];
+ struct bch_ioctl_disk_set_state_v2 i = {
.flags = flags|BCH_BY_INDEX,
.new_state = new_state,
.dev = dev,
+ .err.msg_ptr = (unsigned long)err,
+ .err.msg_len = sizeof(err),
};
- xioctl(fs.ioctl_fd, BCH_IOCTL_DISK_SET_STATE, &i);
+ int ret = ioctl(fs.ioctl_fd, BCH_IOCTL_DISK_SET_STATE_v2, &i);
+ if (ret < 0)
+ die("disk_set_state error:\n%s", err);
}
static inline struct bch_ioctl_fs_usage *bchu_fs_usage(struct bchfs_handle fs)