struct zswap_tree *tree = zswap_trees[type];
        struct zswap_entry *entry;
        u8 *dst;
-       bool ret;
 
        VM_WARN_ON_ONCE(!folio_test_locked(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) {
        zswap_entry_put(tree, entry);
        spin_unlock(&tree->lock);
 
-       return ret;
+       return true;
 }
 
 void zswap_invalidate(int type, pgoff_t offset)