|
@@ -99,11 +99,12 @@ static ssize_t mem_used_total_show(struct device *dev,
|
|
{
|
|
{
|
|
u64 val = 0;
|
|
u64 val = 0;
|
|
struct zram *zram = dev_to_zram(dev);
|
|
struct zram *zram = dev_to_zram(dev);
|
|
- struct zram_meta *meta = zram->meta;
|
|
|
|
|
|
|
|
down_read(&zram->init_lock);
|
|
down_read(&zram->init_lock);
|
|
- if (init_done(zram))
|
|
|
|
|
|
+ if (init_done(zram)) {
|
|
|
|
+ struct zram_meta *meta = zram->meta;
|
|
val = zs_get_total_pages(meta->mem_pool);
|
|
val = zs_get_total_pages(meta->mem_pool);
|
|
|
|
+ }
|
|
up_read(&zram->init_lock);
|
|
up_read(&zram->init_lock);
|
|
|
|
|
|
return scnprintf(buf, PAGE_SIZE, "%llu\n", val << PAGE_SHIFT);
|
|
return scnprintf(buf, PAGE_SIZE, "%llu\n", val << PAGE_SHIFT);
|
|
@@ -173,16 +174,17 @@ static ssize_t mem_used_max_store(struct device *dev,
|
|
int err;
|
|
int err;
|
|
unsigned long val;
|
|
unsigned long val;
|
|
struct zram *zram = dev_to_zram(dev);
|
|
struct zram *zram = dev_to_zram(dev);
|
|
- struct zram_meta *meta = zram->meta;
|
|
|
|
|
|
|
|
err = kstrtoul(buf, 10, &val);
|
|
err = kstrtoul(buf, 10, &val);
|
|
if (err || val != 0)
|
|
if (err || val != 0)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
down_read(&zram->init_lock);
|
|
down_read(&zram->init_lock);
|
|
- if (init_done(zram))
|
|
|
|
|
|
+ if (init_done(zram)) {
|
|
|
|
+ struct zram_meta *meta = zram->meta;
|
|
atomic_long_set(&zram->stats.max_used_pages,
|
|
atomic_long_set(&zram->stats.max_used_pages,
|
|
zs_get_total_pages(meta->mem_pool));
|
|
zs_get_total_pages(meta->mem_pool));
|
|
|
|
+ }
|
|
up_read(&zram->init_lock);
|
|
up_read(&zram->init_lock);
|
|
|
|
|
|
return len;
|
|
return len;
|