summaryrefslogtreecommitdiff
path: root/libbcache/chardev.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcache/chardev.c')
-rw-r--r--libbcache/chardev.c48
1 files changed, 19 insertions, 29 deletions
diff --git a/libbcache/chardev.c b/libbcache/chardev.c
index 450859d5..d98a3ee1 100644
--- a/libbcache/chardev.c
+++ b/libbcache/chardev.c
@@ -1,12 +1,3 @@
-/*
- * This file adds support for a character device /dev/bcache that is used to
- * atomically register a list of devices, remove a device from a cache_set
- * and add a device to a cache set.
- *
- * Copyright (c) 2014 Datera, Inc.
- *
- */
-
#include "bcache.h"
#include "super.h"
#include "super-io.h"
@@ -55,7 +46,7 @@ static long bch_ioctl_assemble(struct bch_ioctl_assemble __user *user_arg)
err = bch_fs_open(devs, arg.nr_devs, bch_opts_empty(), NULL);
if (err) {
- pr_err("Could not register cache set: %s", err);
+ pr_err("Could not open filesystem: %s", err);
ret = -EINVAL;
goto err;
}
@@ -105,13 +96,13 @@ static long bch_global_ioctl(unsigned cmd, void __user *arg)
}
}
-static long bch_ioctl_stop(struct cache_set *c)
+static long bch_ioctl_stop(struct bch_fs *c)
{
bch_fs_stop_async(c);
return 0;
}
-static long bch_ioctl_disk_add(struct cache_set *c,
+static long bch_ioctl_disk_add(struct bch_fs *c,
struct bch_ioctl_disk_add __user *user_arg)
{
struct bch_ioctl_disk_add arg;
@@ -132,11 +123,11 @@ static long bch_ioctl_disk_add(struct cache_set *c,
}
/* returns with ref on ca->ref */
-static struct cache *bch_device_lookup(struct cache_set *c,
- const char __user *dev)
+static struct bch_dev *bch_device_lookup(struct bch_fs *c,
+ const char __user *dev)
{
struct block_device *bdev;
- struct cache *ca;
+ struct bch_dev *ca;
char *path;
unsigned i;
@@ -149,7 +140,7 @@ static struct cache *bch_device_lookup(struct cache_set *c,
if (IS_ERR(bdev))
return ERR_CAST(bdev);
- for_each_cache(ca, c, i)
+ for_each_member_device(ca, c, i)
if (ca->disk_sb.bdev == bdev)
goto found;
@@ -159,11 +150,11 @@ found:
return ca;
}
-static long bch_ioctl_disk_remove(struct cache_set *c,
+static long bch_ioctl_disk_remove(struct bch_fs *c,
struct bch_ioctl_disk_remove __user *user_arg)
{
struct bch_ioctl_disk_remove arg;
- struct cache *ca;
+ struct bch_dev *ca;
int ret;
if (copy_from_user(&arg, user_arg, sizeof(arg)))
@@ -175,15 +166,14 @@ static long bch_ioctl_disk_remove(struct cache_set *c,
ret = bch_dev_remove(c, ca, arg.flags);
- percpu_ref_put(&ca->ref);
return ret;
}
-static long bch_ioctl_disk_set_state(struct cache_set *c,
+static long bch_ioctl_disk_set_state(struct bch_fs *c,
struct bch_ioctl_disk_set_state __user *user_arg)
{
struct bch_ioctl_disk_set_state arg;
- struct cache *ca;
+ struct bch_dev *ca;
int ret;
if (copy_from_user(&arg, user_arg, sizeof(arg)))
@@ -199,7 +189,7 @@ static long bch_ioctl_disk_set_state(struct cache_set *c,
return ret;
}
-static struct bch_member *bch_uuid_lookup(struct cache_set *c, uuid_le uuid)
+static struct bch_member *bch_uuid_lookup(struct bch_fs *c, uuid_le uuid)
{
struct bch_sb_field_members *mi = bch_sb_get_members(c->disk_sb);
unsigned i;
@@ -213,7 +203,7 @@ static struct bch_member *bch_uuid_lookup(struct cache_set *c, uuid_le uuid)
return NULL;
}
-static long bch_ioctl_disk_remove_by_uuid(struct cache_set *c,
+static long bch_ioctl_disk_remove_by_uuid(struct bch_fs *c,
struct bch_ioctl_disk_remove_by_uuid __user *user_arg)
{
struct bch_ioctl_disk_fail_by_uuid arg;
@@ -235,7 +225,7 @@ static long bch_ioctl_disk_remove_by_uuid(struct cache_set *c,
return ret;
}
-static long bch_ioctl_disk_fail_by_uuid(struct cache_set *c,
+static long bch_ioctl_disk_fail_by_uuid(struct bch_fs *c,
struct bch_ioctl_disk_fail_by_uuid __user *user_arg)
{
struct bch_ioctl_disk_fail_by_uuid arg;
@@ -256,7 +246,7 @@ static long bch_ioctl_disk_fail_by_uuid(struct cache_set *c,
return ret;
}
-static long bch_ioctl_query_uuid(struct cache_set *c,
+static long bch_ioctl_query_uuid(struct bch_fs *c,
struct bch_ioctl_query_uuid __user *user_arg)
{
return copy_to_user(&user_arg->uuid,
@@ -264,7 +254,7 @@ static long bch_ioctl_query_uuid(struct cache_set *c,
sizeof(c->sb.user_uuid));
}
-long bch_fs_ioctl(struct cache_set *c, unsigned cmd, void __user *arg)
+long bch_fs_ioctl(struct bch_fs *c, unsigned cmd, void __user *arg)
{
/* ioctls that don't require admin cap: */
switch (cmd) {
@@ -301,7 +291,7 @@ long bch_fs_ioctl(struct cache_set *c, unsigned cmd, void __user *arg)
static long bch_chardev_ioctl(struct file *filp, unsigned cmd, unsigned long v)
{
- struct cache_set *c = filp->private_data;
+ struct bch_fs *c = filp->private_data;
void __user *arg = (void __user *) v;
return c
@@ -320,7 +310,7 @@ static struct class *bch_chardev_class;
static struct device *bch_chardev;
static DEFINE_IDR(bch_chardev_minor);
-void bch_fs_chardev_exit(struct cache_set *c)
+void bch_fs_chardev_exit(struct bch_fs *c)
{
if (!IS_ERR_OR_NULL(c->chardev))
device_unregister(c->chardev);
@@ -328,7 +318,7 @@ void bch_fs_chardev_exit(struct cache_set *c)
idr_remove(&bch_chardev_minor, c->minor);
}
-int bch_fs_chardev_init(struct cache_set *c)
+int bch_fs_chardev_init(struct bch_fs *c)
{
c->minor = idr_alloc(&bch_chardev_minor, c, 0, 0, GFP_KERNEL);
if (c->minor < 0)