summaryrefslogtreecommitdiff
path: root/libbcachefs.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-02-08 15:30:19 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-02-08 15:33:43 -0500
commit7875b82630f6431971175e2f4205bb65c2c43488 (patch)
treef200081697939b7cc4d9f972d0d1e8c894af9640 /libbcachefs.h
parent6976570d670e4053f026d380cfe5397a0a8ed139 (diff)
New data rereplicate command
Diffstat (limited to 'libbcachefs.h')
-rw-r--r--libbcachefs.h42
1 files changed, 35 insertions, 7 deletions
diff --git a/libbcachefs.h b/libbcachefs.h
index dc50983..c7c31dd 100644
--- a/libbcachefs.h
+++ b/libbcachefs.h
@@ -89,6 +89,7 @@ struct bchfs_handle {
void bcache_fs_close(struct bchfs_handle);
struct bchfs_handle bcache_fs_open(const char *);
+struct bchfs_handle bchu_fs_open_by_dev(const char *, unsigned *);
static inline void bchu_disk_add(struct bchfs_handle fs, char *dev)
{
@@ -97,19 +98,44 @@ static inline void bchu_disk_add(struct bchfs_handle fs, char *dev)
xioctl(fs.ioctl_fd, BCH_IOCTL_DISK_ADD, &i);
}
-static inline void bchu_disk_set_state(struct bchfs_handle fs, const char *dev,
+static inline void bchu_disk_remove(struct bchfs_handle fs, unsigned dev_idx,
+ unsigned flags)
+{
+ struct bch_ioctl_disk i = {
+ .flags = flags|BCH_BY_INDEX,
+ .dev = dev_idx,
+ };
+
+ xioctl(fs.ioctl_fd, BCH_IOCTL_DISK_REMOVE, &i);
+}
+
+static inline void bchu_disk_online(struct bchfs_handle fs, char *dev)
+{
+ struct bch_ioctl_disk i = { .dev = (__u64) dev, };
+
+ xioctl(fs.ioctl_fd, BCH_IOCTL_DISK_ONLINE, &i);
+}
+
+static inline void bchu_disk_offline(struct bchfs_handle fs, unsigned dev_idx,
+ unsigned flags)
+{
+ struct bch_ioctl_disk i = {
+ .flags = flags|BCH_BY_INDEX,
+ .dev = dev_idx,
+ };
+
+ xioctl(fs.ioctl_fd, BCH_IOCTL_DISK_OFFLINE, &i);
+}
+
+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 = {
- .flags = flags,
+ .flags = flags|BCH_BY_INDEX,
.new_state = new_state,
+ .dev = dev,
};
- if (!kstrtoull(dev, 10, &i.dev))
- i.flags |= BCH_BY_INDEX;
- else
- i.dev = (u64) dev;
-
xioctl(fs.ioctl_fd, BCH_IOCTL_DISK_SET_STATE, &i);
}
@@ -176,4 +202,6 @@ static inline void bchu_disk_resize(struct bchfs_handle fs,
xioctl(fs.ioctl_fd, BCH_IOCTL_DISK_RESIZE, &i);
}
+int bchu_data(struct bchfs_handle, struct bch_ioctl_data);
+
#endif /* _LIBBCACHE_H */