UPSTREAM: zram: introduce zram data accessor
authorMinchan Kim <minchan@kernel.org>
Wed, 3 May 2017 21:55:50 +0000 (14:55 -0700)
committerMichael Benedict <michaelbt@live.com>
Fri, 30 Aug 2019 07:41:53 +0000 (17:41 +1000)
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>
(cherry picked from commit 643ae61d0f41c48aa7179921fe15ba4b4d8ddfec)
Signed-off-by: Peter Kalauskas <peskal@google.com>
Bug: 112488418
Change-Id: I3916d5561ab9fb2917455cac74bee431fbe84b5d

drivers/block/zram/zram_drv.c

index 6690b25d6d293842c7a68aa2fa12635ce33cc7cc..cde2129304d6b9295e5230a553aa1814e1a448f0 100644 (file)
@@ -56,6 +56,16 @@ static inline struct zram *dev_to_zram(struct device *dev)
        return (struct zram *)dev_to_disk(dev)->private_data;
 }
 
+static unsigned long zram_get_handle(struct zram *zram, u32 index)
+{
+       return zram->table[index].handle;
+}
+
+static void zram_set_handle(struct zram *zram, u32 index, unsigned long handle)
+{
+       zram->table[index].handle = handle;
+}
+
 /* flag operations require table entry bit_spin_lock() being held */
 static int zram_test_flag(struct zram *zram, u32 index,
                        enum zram_pageflags flag)
@@ -81,9 +91,9 @@ static inline void zram_set_element(struct zram *zram, u32 index,
        zram->table[index].element = element;
 }
 
-static inline void zram_clear_element(struct zram *zram, u32 index)
+static unsigned long zram_get_element(struct zram *zram, u32 index)
 {
-       zram->table[index].element = 0;
+       return zram->table[index].element;
 }
 
 static size_t zram_get_obj_size(struct zram *zram, u32 index)
@@ -424,13 +434,14 @@ static bool zram_same_page_read(struct zram *zram, u32 index,
                                unsigned int offset, unsigned int len)
 {
        zram_slot_lock(zram, index);
-       if (unlikely(!zram->table[index].handle) ||
-                       zram_test_flag(zram, index, ZRAM_SAME)) {
+       if (unlikely(!zram_get_handle(zram, index) ||
+                       zram_test_flag(zram, index, ZRAM_SAME))) {
                void *mem;
 
                zram_slot_unlock(zram, index);
                mem = kmap_atomic(page);
-               zram_fill_page(mem + offset, len, zram->table[index].element);
+               zram_fill_page(mem + offset, len,
+                                       zram_get_element(zram, index));
                kunmap_atomic(mem);
                return true;
        }
@@ -469,7 +480,7 @@ static void zram_meta_free(struct zram *zram, u64 disksize)
 
        /* Free all pages that are still in this zram device */
        for (index = 0; index < num_pages; index++) {
-               unsigned long handle = zram->table[index].handle;
+               unsigned long handle = zram_get_handle(zram, index);
                /*
                 * No memory is allocated for same element filled pages.
                 * Simply clear same page flag.
@@ -509,7 +520,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize)
  */
 static void zram_free_page(struct zram *zram, size_t index)
 {
-       unsigned long handle = zram->table[index].handle;
+       unsigned long handle = zram_get_handle(zram, index);
 
        /*
         * No memory is allocated for same element filled pages.
@@ -517,7 +528,7 @@ static void zram_free_page(struct zram *zram, size_t index)
         */
        if (zram_test_flag(zram, index, ZRAM_SAME)) {
                zram_clear_flag(zram, index, ZRAM_SAME);
-               zram_clear_element(zram, index);
+               zram_set_element(zram, index, 0);
                atomic64_dec(&zram->stats.same_pages);
                return;
        }
@@ -531,7 +542,7 @@ static void zram_free_page(struct zram *zram, size_t index)
                        &zram->stats.compr_data_size);
        atomic64_dec(&zram->stats.pages_stored);
 
-       zram->table[index].handle = 0;
+       zram_set_handle(zram, index, 0);
        zram_set_obj_size(zram, index, 0);
 }
 
@@ -546,7 +557,7 @@ static int zram_decompress_page(struct zram *zram, struct page *page, u32 index)
                return 0;
 
        zram_slot_lock(zram, index);
-       handle = zram->table[index].handle;
+       handle = zram_get_handle(zram, index);
        size = zram_get_obj_size(zram, index);
 
        src = zs_map_object(zram->mem_pool, handle, ZS_MM_RO);
@@ -712,7 +723,7 @@ static int __zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index)
         */
        zram_slot_lock(zram, index);
        zram_free_page(zram, index);
-       zram->table[index].handle = handle;
+       zram_set_handle(zram, index, handle);
        zram_set_obj_size(zram, index, comp_len);
        zram_slot_unlock(zram, index);