diff options
author | Minchan Kim <minchan@kernel.org> | 2017-05-03 17:55:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-03 18:52:11 -0400 |
commit | 643ae61d0f41c48aa7179921fe15ba4b4d8ddfec (patch) | |
tree | a061c291ebc29ff7bda4359f480c7650385e0a90 | |
parent | beb6602cf87abee547b2692031185111f625153a (diff) |
zram: introduce zram data accessor
With element, sometime I got confused handle and element access. It
might be my bad but I think it's time to introduce accessor to prevent
future idiot like me. This patch is just clean-up patch so it shouldn't
change any behavior.
Link: http://lkml.kernel.org/r/1492052365-16169-6-git-send-email-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/block/zram/zram_drv.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index c674d23539b1..61b0f8374222 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c | |||
@@ -57,6 +57,16 @@ static inline struct zram *dev_to_zram(struct device *dev) | |||
57 | return (struct zram *)dev_to_disk(dev)->private_data; | 57 | return (struct zram *)dev_to_disk(dev)->private_data; |
58 | } | 58 | } |
59 | 59 | ||
60 | static unsigned long zram_get_handle(struct zram *zram, u32 index) | ||
61 | { | ||
62 | return zram->table[index].handle; | ||
63 | } | ||
64 | |||
65 | static void zram_set_handle(struct zram *zram, u32 index, unsigned long handle) | ||
66 | { | ||
67 | zram->table[index].handle = handle; | ||
68 | } | ||
69 | |||
60 | /* flag operations require table entry bit_spin_lock() being held */ | 70 | /* flag operations require table entry bit_spin_lock() being held */ |
61 | static int zram_test_flag(struct zram *zram, u32 index, | 71 | static int zram_test_flag(struct zram *zram, u32 index, |
62 | enum zram_pageflags flag) | 72 | enum zram_pageflags flag) |
@@ -82,9 +92,9 @@ static inline void zram_set_element(struct zram *zram, u32 index, | |||
82 | zram->table[index].element = element; | 92 | zram->table[index].element = element; |
83 | } | 93 | } |
84 | 94 | ||
85 | static inline void zram_clear_element(struct zram *zram, u32 index) | 95 | static unsigned long zram_get_element(struct zram *zram, u32 index) |
86 | { | 96 | { |
87 | zram->table[index].element = 0; | 97 | return zram->table[index].element; |
88 | } | 98 | } |
89 | 99 | ||
90 | static size_t zram_get_obj_size(struct zram *zram, u32 index) | 100 | static size_t zram_get_obj_size(struct zram *zram, u32 index) |
@@ -425,13 +435,14 @@ static bool zram_same_page_read(struct zram *zram, u32 index, | |||
425 | unsigned int offset, unsigned int len) | 435 | unsigned int offset, unsigned int len) |
426 | { | 436 | { |
427 | zram_slot_lock(zram, index); | 437 | zram_slot_lock(zram, index); |
428 | if (unlikely(!zram->table[index].handle) || | 438 | if (unlikely(!zram_get_handle(zram, index) || |
429 | zram_test_flag(zram, index, ZRAM_SAME)) { | 439 | zram_test_flag(zram, index, ZRAM_SAME))) { |
430 | void *mem; | 440 | void *mem; |
431 | 441 | ||
432 | zram_slot_unlock(zram, index); | 442 | zram_slot_unlock(zram, index); |
433 | mem = kmap_atomic(page); | 443 | mem = kmap_atomic(page); |
434 | zram_fill_page(mem + offset, len, zram->table[index].element); | 444 | zram_fill_page(mem + offset, len, |
445 | zram_get_element(zram, index)); | ||
435 | kunmap_atomic(mem); | 446 | kunmap_atomic(mem); |
436 | return true; | 447 | return true; |
437 | } | 448 | } |
@@ -470,7 +481,7 @@ static void zram_meta_free(struct zram *zram, u64 disksize) | |||
470 | 481 | ||
471 | /* Free all pages that are still in this zram device */ | 482 | /* Free all pages that are still in this zram device */ |
472 | for (index = 0; index < num_pages; index++) { | 483 | for (index = 0; index < num_pages; index++) { |
473 | unsigned long handle = zram->table[index].handle; | 484 | unsigned long handle = zram_get_handle(zram, index); |
474 | /* | 485 | /* |
475 | * No memory is allocated for same element filled pages. | 486 | * No memory is allocated for same element filled pages. |
476 | * Simply clear same page flag. | 487 | * Simply clear same page flag. |
@@ -510,7 +521,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize) | |||
510 | */ | 521 | */ |
511 | static void zram_free_page(struct zram *zram, size_t index) | 522 | static void zram_free_page(struct zram *zram, size_t index) |
512 | { | 523 | { |
513 | unsigned long handle = zram->table[index].handle; | 524 | unsigned long handle = zram_get_handle(zram, index); |
514 | 525 | ||
515 | /* | 526 | /* |
516 | * No memory is allocated for same element filled pages. | 527 | * No memory is allocated for same element filled pages. |
@@ -518,7 +529,7 @@ static void zram_free_page(struct zram *zram, size_t index) | |||
518 | */ | 529 | */ |
519 | if (zram_test_flag(zram, index, ZRAM_SAME)) { | 530 | if (zram_test_flag(zram, index, ZRAM_SAME)) { |
520 | zram_clear_flag(zram, index, ZRAM_SAME); | 531 | zram_clear_flag(zram, index, ZRAM_SAME); |
521 | zram_clear_element(zram, index); | 532 | zram_set_element(zram, index, 0); |
522 | atomic64_dec(&zram->stats.same_pages); | 533 | atomic64_dec(&zram->stats.same_pages); |
523 | return; | 534 | return; |
524 | } | 535 | } |
@@ -532,7 +543,7 @@ static void zram_free_page(struct zram *zram, size_t index) | |||
532 | &zram->stats.compr_data_size); | 543 | &zram->stats.compr_data_size); |
533 | atomic64_dec(&zram->stats.pages_stored); | 544 | atomic64_dec(&zram->stats.pages_stored); |
534 | 545 | ||
535 | zram->table[index].handle = 0; | 546 | zram_set_handle(zram, index, 0); |
536 | zram_set_obj_size(zram, index, 0); | 547 | zram_set_obj_size(zram, index, 0); |
537 | } | 548 | } |
538 | 549 | ||
@@ -547,7 +558,7 @@ static int zram_decompress_page(struct zram *zram, struct page *page, u32 index) | |||
547 | return 0; | 558 | return 0; |
548 | 559 | ||
549 | zram_slot_lock(zram, index); | 560 | zram_slot_lock(zram, index); |
550 | handle = zram->table[index].handle; | 561 | handle = zram_get_handle(zram, index); |
551 | size = zram_get_obj_size(zram, index); | 562 | size = zram_get_obj_size(zram, index); |
552 | 563 | ||
553 | src = zs_map_object(zram->mem_pool, handle, ZS_MM_RO); | 564 | src = zs_map_object(zram->mem_pool, handle, ZS_MM_RO); |
@@ -713,7 +724,7 @@ static int __zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index) | |||
713 | */ | 724 | */ |
714 | zram_slot_lock(zram, index); | 725 | zram_slot_lock(zram, index); |
715 | zram_free_page(zram, index); | 726 | zram_free_page(zram, index); |
716 | zram->table[index].handle = handle; | 727 | zram_set_handle(zram, index, handle); |
717 | zram_set_obj_size(zram, index, comp_len); | 728 | zram_set_obj_size(zram, index, comp_len); |
718 | zram_slot_unlock(zram, index); | 729 | zram_slot_unlock(zram, index); |
719 | 730 | ||