Skip to content

Commit

Permalink
zram: remove entry element member
Browse files Browse the repository at this point in the history
Element is in the same anon union as handle and hence holds the same
value, which makes code below sort of confusing

    handle = zram_get_handle()
    if (!handle)
	element = zram_get_element()

Element doesn't really simplify the code, let's just remove it.  We
already re-purpose handle to store the block id a written back page.

Link: https://lkml.kernel.org/r/20241218063513.297475-3-senozhatsky@chromium.org
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
  • Loading branch information
Sergey Senozhatsky authored and Andrew Morton committed Jan 26, 2025
1 parent 7126803 commit b4444a8
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 22 deletions.
23 changes: 5 additions & 18 deletions drivers/block/zram/zram_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,17 +112,6 @@ static void zram_clear_flag(struct zram *zram, u32 index,
zram->table[index].flags &= ~BIT(flag);
}

static inline void zram_set_element(struct zram *zram, u32 index,
unsigned long element)
{
zram->table[index].element = element;
}

static unsigned long zram_get_element(struct zram *zram, u32 index)
{
return zram->table[index].element;
}

static size_t zram_get_obj_size(struct zram *zram, u32 index)
{
return zram->table[index].flags & (BIT(ZRAM_FLAG_SHIFT) - 1);
Expand Down Expand Up @@ -879,7 +868,7 @@ static ssize_t writeback_store(struct device *dev,

zram_free_page(zram, index);
zram_set_flag(zram, index, ZRAM_WB);
zram_set_element(zram, index, blk_idx);
zram_set_handle(zram, index, blk_idx);
blk_idx = 0;
atomic64_inc(&zram->stats.pages_stored);
spin_lock(&zram->wb_limit_lock);
Expand Down Expand Up @@ -1505,7 +1494,7 @@ static void zram_free_page(struct zram *zram, size_t index)

if (zram_test_flag(zram, index, ZRAM_WB)) {
zram_clear_flag(zram, index, ZRAM_WB);
free_block_bdev(zram, zram_get_element(zram, index));
free_block_bdev(zram, zram_get_handle(zram, index));
goto out;
}

Expand Down Expand Up @@ -1549,12 +1538,10 @@ static int zram_read_from_zspool(struct zram *zram, struct page *page,

handle = zram_get_handle(zram, index);
if (!handle || zram_test_flag(zram, index, ZRAM_SAME)) {
unsigned long value;
void *mem;

value = handle ? zram_get_element(zram, index) : 0;
mem = kmap_local_page(page);
zram_fill_page(mem, PAGE_SIZE, value);
zram_fill_page(mem, PAGE_SIZE, handle);
kunmap_local(mem);
return 0;
}
Expand Down Expand Up @@ -1600,7 +1587,7 @@ static int zram_read_page(struct zram *zram, struct page *page, u32 index,
*/
zram_slot_unlock(zram, index);

ret = read_from_bdev(zram, page, zram_get_element(zram, index),
ret = read_from_bdev(zram, page, zram_get_handle(zram, index),
parent);
}

Expand Down Expand Up @@ -1751,7 +1738,7 @@ static int zram_write_page(struct zram *zram, struct page *page, u32 index)

if (flags) {
zram_set_flag(zram, index, flags);
zram_set_element(zram, index, element);
zram_set_handle(zram, index, element);
} else {
zram_set_handle(zram, index, handle);
zram_set_obj_size(zram, index, comp_len);
Expand Down
5 changes: 1 addition & 4 deletions drivers/block/zram/zram_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,7 @@ enum zram_pageflags {

/* Allocated for each disk page */
struct zram_table_entry {
union {
unsigned long handle;
unsigned long element;
};
unsigned long handle;
unsigned int flags;
spinlock_t lock;
#ifdef CONFIG_ZRAM_TRACK_ENTRY_ACTIME
Expand Down

0 comments on commit b4444a8

Please sign in to comment.