From 58e78feee6d757fa5abed60ec7956d26e44ac3b0 Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Thu, 28 Jan 2010 21:13:41 +0530 Subject: [PATCH] --- yaml --- r: 186727 b: refs/heads/master c: 2e882281742f7e483e751bbbaf6c0946b5f8513f h: refs/heads/master i: 186725: 6d6fb139bdae6093d00c482c06e3e7674770d77b 186723: b8fa85c8196873626eb77d1f860489fe824c9b10 186719: c372d71ace6407209aba2d4caf5949b436a93c86 v: v3 --- [refs] | 2 +- trunk/drivers/staging/ramzswap/ramzswap_drv.c | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 22de049250d0..cae26baede92 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: de1a21a0f1f614dac0d8cacc13f41e32a15bba98 +refs/heads/master: 2e882281742f7e483e751bbbaf6c0946b5f8513f diff --git a/trunk/drivers/staging/ramzswap/ramzswap_drv.c b/trunk/drivers/staging/ramzswap/ramzswap_drv.c index 3035addfaedd..7e0a3fab9cd4 100644 --- a/trunk/drivers/staging/ramzswap/ramzswap_drv.c +++ b/trunk/drivers/staging/ramzswap/ramzswap_drv.c @@ -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);