summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWanpeng Li <liwanp@linux.vnet.ibm.com>2013-04-10 08:25:51 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-04-11 12:58:39 -0700
commit55345fb9ff68e2e5c0259c814542e72aec972c02 (patch)
treee4aca5f022a11e599496da57d89b9763699408fd
parentbc38967837802949dd831db6209cedf64239e1cc (diff)
downloadlinux-55345fb9ff68e2e5c0259c814542e72aec972c02.tar.bz2
staging: zcache: fix account foregin counters against zero-filled pages
zero-filled pages won't be compressed and sent to remote system. Monitor the number ephemeral and persistent pages that Ramster has sent make no sense. This patch skip account foregin counters against zero-filled pages. Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com> Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/zcache/zcache-main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c
index f3de76d07073..e23d814b5392 100644
--- a/drivers/staging/zcache/zcache-main.c
+++ b/drivers/staging/zcache/zcache-main.c
@@ -415,7 +415,7 @@ create_in_new_page:
got_pampd:
inc_zcache_eph_zbytes(clen);
inc_zcache_eph_zpages();
- if (ramster_enabled && raw)
+ if (ramster_enabled && raw && !zero_filled)
ramster_count_foreign_pages(true, 1);
if (zero_filled)
pampd = (void *)ZERO_FILLED;
@@ -500,7 +500,7 @@ create_in_new_page:
got_pampd:
inc_zcache_pers_zpages();
inc_zcache_pers_zbytes(clen);
- if (ramster_enabled && raw)
+ if (ramster_enabled && raw && !zero_filled)
ramster_count_foreign_pages(false, 1);
if (zero_filled)
pampd = (void *)ZERO_FILLED;
@@ -681,7 +681,7 @@ zero_fill:
dec_zcache_pers_zpages(zpages);
dec_zcache_pers_zbytes(zsize);
}
- if (!is_local_client(pool->client))
+ if (!is_local_client(pool->client) && !zero_filled)
ramster_count_foreign_pages(eph, -1);
if (page && !zero_filled)
zcache_free_page(page);
@@ -732,7 +732,7 @@ static void zcache_pampd_free(void *pampd, struct tmem_pool *pool,
dec_zcache_pers_zpages(zpages);
dec_zcache_pers_zbytes(zsize);
}
- if (!is_local_client(pool->client))
+ if (!is_local_client(pool->client) && !zero_filled)
ramster_count_foreign_pages(is_ephemeral(pool), -1);
if (page && !zero_filled)
zcache_free_page(page);