RE: [PATCH] staging: zcache: fix cleancache crash
From: Dan Magenheimer <hidden>
Date: 2011-09-15 14:16:44
Also in:
lkml
From: Dan Magenheimer Sent: Tuesday, September 13, 2011 2:56 PM To: Seth Jennings; gregkh@suse.de Cc: devel@driverdev.osuosl.org; linux-mm@kvack.org; ngupta@vflare.org; linux-kernel@vger.kernel.org; francis.moro@gmail.com Subject: RE: [PATCH] staging: zcache: fix cleancache crashquoted
From: Seth Jennings [mailto:sjenning@linux.vnet.ibm.com] Sent: Tuesday, September 13, 2011 1:19 PM To: gregkh@suse.de Cc: devel@driverdev.osuosl.org; linux-mm@kvack.org; ngupta@vflare.org; linux-kernel@vger.kernel.org; francis.moro@gmail.com; Dan Magenheimer; Seth Jennings Subject: [PATCH] staging: zcache: fix cleancache crash After commit, c5f5c4db, cleancache crashes on the first successful get. This was caused by a remaining virt_to_page() call in zcache_pampd_get_data_and_free() that only gets run in the cleancache path. The patch converts the virt_to_page() to struct page casting like was done for other instances in c5f5c4db. Based on 3.1-rc4 Signed-off-by: Seth Jennings <redacted>Yep, this appears to fix it! Hopefully Francis can confirm. Greg, ideally apply this additional fix rather than do the revert of the original patch suggested in https://lkml.org/lkml/2011/9/13/234 Acked-by: Dan Magenheimer <redacted>
Greg, Francis has confirmed offlist that Seth's fix below has fixed his issue as well. Please apply, hopefully as soon as possible and before 3.1 goes final! Thanks, Dan
quoted
--- drivers/staging/zcache/zcache-main.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c index a3f5162..462fbc2 100644 --- a/drivers/staging/zcache/zcache-main.c +++ b/drivers/staging/zcache/zcache-main.c@@ -1242,7 +1242,7 @@ static int zcache_pampd_get_data_and_free(char *data, size_t *bufsize, boolraw,quoted
int ret = 0; BUG_ON(!is_ephemeral(pool)); - zbud_decompress(virt_to_page(data), pampd); + zbud_decompress((struct page *)(data), pampd); zbud_free_and_delist((struct zbud_hdr *)pampd); atomic_dec(&zcache_curr_eph_pampd_count); return ret; -- 1.7.4.1
-- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>