]> Pileus Git - ~andy/linux/blobdiff - mm/frontswap.c
mm: frontswap: make all branches of if statement in put page consistent
[~andy/linux] / mm / frontswap.c
index e6353d9151eeda274ed87643ee13814f28153ac7..d8dc9867b0054521680dca9d89d8e37e7d71cc77 100644 (file)
@@ -140,16 +140,16 @@ int __frontswap_store(struct page *page)
                inc_frontswap_succ_stores();
                if (!dup)
                        atomic_inc(&sis->frontswap_pages);
-       } else if (dup) {
+       } else {
                /*
                  failed dup always results in automatic invalidate of
                  the (older) page from frontswap
                 */
-               frontswap_clear(sis, offset);
-               atomic_dec(&sis->frontswap_pages);
-               inc_frontswap_failed_stores();
-       } else {
                inc_frontswap_failed_stores();
+               if (dup) {
+                       frontswap_clear(sis, offset);
+                       atomic_dec(&sis->frontswap_pages);
+               }
        }
        if (frontswap_writethrough_enabled)
                /* report failure so swap also writes to swap device */