mm/zswap: cleanup zswap_load()
authorChengming Zhou <zhouchengming@bytedance.com>
Thu, 28 Dec 2023 09:45:44 +0000 (09:45 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 29 Dec 2023 19:58:28 +0000 (11:58 -0800)
After the common decompress part goes to __zswap_load(), we can cleanup
the zswap_load() a little.

Link: https://lkml.kernel.org/r/20231213-zswap-dstmem-v5-3-9382162bbf05@bytedance.com
Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
Reviewed-by: Yosry Ahmed <yosryahmed@google.com>
Acked-by: Chis Li <chrisl@kernel.org> (Google)
Cc: Barry Song <21cnbao@gmail.com>
Cc: Dan Streetman <ddstreet@ieee.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Nhat Pham <nphamcs@gmail.com>
Cc: Seth Jennings <sjenning@redhat.com>
Cc: Vitaly Wool <vitaly.wool@konsulko.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/zswap.c

index 801c25d939f2505fb37485d87dfcbe0a0649dd26..d8e883b52cb7cf12744b17206f02c12eb5fbbc96 100644 (file)
@@ -1746,7 +1746,6 @@ bool zswap_load(struct folio *folio)
        struct zswap_tree *tree = zswap_trees[type];
        struct zswap_entry *entry;
        u8 *dst;
-       bool ret;
 
        VM_WARN_ON_ONCE(!folio_test_locked(folio));
 
@@ -1759,23 +1758,20 @@ bool zswap_load(struct folio *folio)
        }
        spin_unlock(&tree->lock);
 
-       if (!entry->length) {
+       if (entry->length)
+               __zswap_load(entry, page);
+       else {
                dst = kmap_local_page(page);
                zswap_fill_page(dst, entry->value);
                kunmap_local(dst);
-               ret = true;
-               goto stats;
        }
 
-       __zswap_load(entry, page);
-       ret = true;
-stats:
        count_vm_event(ZSWPIN);
        if (entry->objcg)
                count_objcg_event(entry->objcg, ZSWPIN);
 
        spin_lock(&tree->lock);
-       if (ret && zswap_exclusive_loads_enabled) {
+       if (zswap_exclusive_loads_enabled) {
                zswap_invalidate_entry(tree, entry);
                folio_mark_dirty(folio);
        } else if (entry->length) {
@@ -1785,7 +1781,7 @@ stats:
        zswap_entry_put(tree, entry);
        spin_unlock(&tree->lock);
 
-       return ret;
+       return true;
 }
 
 void zswap_invalidate(int type, pgoff_t offset)