summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
Diffstat (limited to 'mm')
-rw-r--r--mm/zswap.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/mm/zswap.c b/mm/zswap.c
index 70e409add32b..32bcc291397f 100644
--- a/mm/zswap.c
+++ b/mm/zswap.c
@@ -545,15 +545,11 @@ static void zswap_entry_get(struct zswap_entry *entry)
entry->refcount++;
}
-/* caller must hold the tree lock
-* remove from the tree and free it, if nobody reference the entry
-*/
+/* caller must hold the tree lock */
static void zswap_entry_put(struct zswap_entry *entry)
{
- int refcount = --entry->refcount;
-
- WARN_ON_ONCE(refcount < 0);
- if (refcount == 0) {
+ WARN_ON_ONCE(!entry->refcount);
+ if (--entry->refcount == 0) {
WARN_ON_ONCE(!RB_EMPTY_NODE(&entry->rbnode));
zswap_entry_free(entry);
}