]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Staging: ramzswap: Remove redundant check for zero page
authorNitin Gupta <ngupta@vflare.org>
Thu, 28 Jan 2010 15:43:41 +0000 (21:13 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 4 Mar 2010 00:42:53 +0000 (16:42 -0800)
ramzswap_free_page() already handles the case for zero filled
pages. So, remove redundant logic for the same in ramzswap_write().

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/ramzswap/ramzswap_drv.c

index 3035addfaeddbb2217bd95fb5d2d1c1ba0f7ee6d..7e0a3fab9cd4bc00cd5703acb664942de69328c6 100644 (file)
@@ -593,6 +593,10 @@ static void ramzswap_free_page(struct ramzswap *rzs, size_t index)
        u32 offset = rzs->table[index].offset;
 
        if (unlikely(!page)) {
+               /*
+                * No memory is allocated for zero filled pages.
+                * Simply clear zero page flag.
+                */
                if (rzs_test_flag(rzs, index, RZS_ZERO)) {
                        rzs_clear_flag(rzs, index, RZS_ZERO);
                        rzs_stat_dec(&rzs->stats.pages_zero);
@@ -789,18 +793,9 @@ static int ramzswap_write(struct ramzswap *rzs, struct bio *bio)
         * is no longer referenced by any process. So, its now safe
         * to free the memory that was allocated for this page.
         */
-       if (rzs->table[index].page)
+       if (rzs->table[index].page || rzs_test_flag(rzs, index, RZS_ZERO))
                ramzswap_free_page(rzs, index);
 
-       /*
-        * No memory is allocated for zero filled pages.
-        * Simply clear zero page flag.
-        */
-       if (rzs_test_flag(rzs, index, RZS_ZERO)) {
-               rzs_stat_dec(&rzs->stats.pages_zero);
-               rzs_clear_flag(rzs, index, RZS_ZERO);
-       }
-
        mutex_lock(&rzs->lock);
 
        user_mem = kmap_atomic(page, KM_USER0);