Commit ecb37ce9 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Jens Axboe

bcache: Move couple of functions to sysfs.c

There is couple of functions that are used exclusively in sysfs.c.
Move it to there and make them static.

Besides above, it will allow further clean up.

No functional change intended.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarColy Li <colyli@suse.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 04cbc211
...@@ -132,6 +132,41 @@ rw_attribute(btree_shrinker_disabled); ...@@ -132,6 +132,41 @@ rw_attribute(btree_shrinker_disabled);
rw_attribute(copy_gc_enabled); rw_attribute(copy_gc_enabled);
rw_attribute(size); rw_attribute(size);
static ssize_t bch_snprint_string_list(char *buf, size_t size, const char * const list[],
size_t selected)
{
char *out = buf;
size_t i;
for (i = 0; list[i]; i++)
out += snprintf(out, buf + size - out,
i == selected ? "[%s] " : "%s ", list[i]);
out[-1] = '\n';
return out - buf;
}
static ssize_t bch_read_string_list(const char *buf, const char * const list[])
{
size_t i;
char *s, *d = kstrndup(buf, PAGE_SIZE - 1, GFP_KERNEL);
if (!d)
return -ENOMEM;
s = strim(d);
for (i = 0; list[i]; i++)
if (!strcmp(list[i], s))
break;
kfree(d);
if (!list[i])
return -EINVAL;
return i;
}
SHOW(__bch_cached_dev) SHOW(__bch_cached_dev)
{ {
struct cached_dev *dc = container_of(kobj, struct cached_dev, struct cached_dev *dc = container_of(kobj, struct cached_dev,
......
...@@ -120,41 +120,6 @@ ssize_t bch_hprint(char *buf, int64_t v) ...@@ -120,41 +120,6 @@ ssize_t bch_hprint(char *buf, int64_t v)
return sprintf(buf, "%llu.%i%c", q, t * 10 / 1024, units[u]); return sprintf(buf, "%llu.%i%c", q, t * 10 / 1024, units[u]);
} }
ssize_t bch_snprint_string_list(char *buf, size_t size, const char * const list[],
size_t selected)
{
char *out = buf;
size_t i;
for (i = 0; list[i]; i++)
out += snprintf(out, buf + size - out,
i == selected ? "[%s] " : "%s ", list[i]);
out[-1] = '\n';
return out - buf;
}
ssize_t bch_read_string_list(const char *buf, const char * const list[])
{
size_t i;
char *s, *d = kstrndup(buf, PAGE_SIZE - 1, GFP_KERNEL);
if (!d)
return -ENOMEM;
s = strim(d);
for (i = 0; list[i]; i++)
if (!strcmp(list[i], s))
break;
kfree(d);
if (!list[i])
return -EINVAL;
return i;
}
bool bch_is_zero(const char *p, size_t n) bool bch_is_zero(const char *p, size_t n)
{ {
size_t i; size_t i;
......
...@@ -365,11 +365,6 @@ ssize_t bch_hprint(char *buf, int64_t v); ...@@ -365,11 +365,6 @@ ssize_t bch_hprint(char *buf, int64_t v);
bool bch_is_zero(const char *p, size_t n); bool bch_is_zero(const char *p, size_t n);
int bch_parse_uuid(const char *s, char *uuid); int bch_parse_uuid(const char *s, char *uuid);
ssize_t bch_snprint_string_list(char *buf, size_t size, const char * const list[],
size_t selected);
ssize_t bch_read_string_list(const char *buf, const char * const list[]);
struct time_stats { struct time_stats {
spinlock_t lock; spinlock_t lock;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment