diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-02-08 15:30:19 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-02-08 15:33:43 -0500 |
commit | 7875b82630f6431971175e2f4205bb65c2c43488 (patch) | |
tree | f200081697939b7cc4d9f972d0d1e8c894af9640 /libbcachefs.h | |
parent | 6976570d670e4053f026d380cfe5397a0a8ed139 (diff) |
New data rereplicate command
Diffstat (limited to 'libbcachefs.h')
-rw-r--r-- | libbcachefs.h | 42 |
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 */ |