|
|
@@ -104,7 +104,7 @@ static ssize_t zero_pages_show(struct device *dev,
|
|
|
{
|
|
|
struct zram *zram = dev_to_zram(dev);
|
|
|
|
|
|
- return sprintf(buf, "%u\n", zram->stats.pages_zero);
|
|
|
+ return sprintf(buf, "%u\n", atomic_read(&zram->stats.pages_zero));
|
|
|
}
|
|
|
|
|
|
static ssize_t orig_data_size_show(struct device *dev,
|
|
|
@@ -113,7 +113,7 @@ static ssize_t orig_data_size_show(struct device *dev,
|
|
|
struct zram *zram = dev_to_zram(dev);
|
|
|
|
|
|
return sprintf(buf, "%llu\n",
|
|
|
- (u64)(zram->stats.pages_stored) << PAGE_SHIFT);
|
|
|
+ (u64)(atomic_read(&zram->stats.pages_stored)) << PAGE_SHIFT);
|
|
|
}
|
|
|
|
|
|
static ssize_t compr_data_size_show(struct device *dev,
|
|
|
@@ -293,21 +293,21 @@ static void zram_free_page(struct zram *zram, size_t index)
|
|
|
*/
|
|
|
if (zram_test_flag(meta, index, ZRAM_ZERO)) {
|
|
|
zram_clear_flag(meta, index, ZRAM_ZERO);
|
|
|
- zram->stats.pages_zero--;
|
|
|
+ atomic_dec(&zram->stats.pages_zero);
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (unlikely(size > max_zpage_size))
|
|
|
- zram->stats.bad_compress--;
|
|
|
+ atomic_dec(&zram->stats.bad_compress);
|
|
|
|
|
|
zs_free(meta->mem_pool, handle);
|
|
|
|
|
|
if (size <= PAGE_SIZE / 2)
|
|
|
- zram->stats.good_compress--;
|
|
|
+ atomic_dec(&zram->stats.good_compress);
|
|
|
|
|
|
atomic64_sub(meta->table[index].size, &zram->stats.compr_size);
|
|
|
- zram->stats.pages_stored--;
|
|
|
+ atomic_dec(&zram->stats.pages_stored);
|
|
|
|
|
|
meta->table[index].handle = 0;
|
|
|
meta->table[index].size = 0;
|
|
|
@@ -435,7 +435,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
|
|
|
/* Free memory associated with this sector now. */
|
|
|
zram_free_page(zram, index);
|
|
|
|
|
|
- zram->stats.pages_zero++;
|
|
|
+ atomic_inc(&zram->stats.pages_zero);
|
|
|
zram_set_flag(meta, index, ZRAM_ZERO);
|
|
|
ret = 0;
|
|
|
goto out;
|
|
|
@@ -456,7 +456,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
|
|
|
}
|
|
|
|
|
|
if (unlikely(clen > max_zpage_size)) {
|
|
|
- zram->stats.bad_compress++;
|
|
|
+ atomic_inc(&zram->stats.bad_compress);
|
|
|
clen = PAGE_SIZE;
|
|
|
src = NULL;
|
|
|
if (is_partial_io(bvec))
|
|
|
@@ -493,9 +493,9 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
|
|
|
|
|
|
/* Update stats */
|
|
|
atomic64_add(clen, &zram->stats.compr_size);
|
|
|
- zram->stats.pages_stored++;
|
|
|
+ atomic_inc(&zram->stats.pages_stored);
|
|
|
if (clen <= PAGE_SIZE / 2)
|
|
|
- zram->stats.good_compress++;
|
|
|
+ atomic_inc(&zram->stats.good_compress);
|
|
|
|
|
|
out:
|
|
|
if (is_partial_io(bvec))
|