- if (xioctl(fs.ioctl_fd, BCH_IOCTL_DEV_USAGE, &i))
- die("BCH_IOCTL_DEV_USAGE error: %m");
- return i;
+ struct bch_ioctl_dev_usage u_v1 = { .dev = idx, .flags = BCH_BY_INDEX};
+ xioctl(fs.ioctl_fd, BCH_IOCTL_DEV_USAGE, &u_v1);
+
+ u->state = u_v1.state;
+ u->nr_data_types = ARRAY_SIZE(u_v1.d);
+ u->bucket_size = u_v1.bucket_size;
+ u->nr_buckets = u_v1.nr_buckets;
+
+ for (unsigned i = 0; i < ARRAY_SIZE(u_v1.d); i++)
+ u->d[i] = u_v1.d[i];
+
+ return u;