From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755607AbdCKVXA (ORCPT ); Sat, 11 Mar 2017 16:23:00 -0500 Received: from mail-lf0-f66.google.com ([209.85.215.66]:34747 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753782AbdCKVWw (ORCPT ); Sat, 11 Mar 2017 16:22:52 -0500 Date: Sat, 11 Mar 2017 22:22:39 +0100 From: Vitaly Wool To: Linux-MM , linux-kernel@vger.kernel.org Cc: Alexey Khoroshilov , Dan Streetman , Andrew Morton , Matthew Wilcox Subject: [PATCH] z3fold: fix spinlock unlocking in page reclaim Message-Id: <20170311222239.7b83d8e7ef1914e05497649f@gmail.com> X-Mailer: Sylpheed 3.4.2 (GTK+ 2.24.28; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The patch "z3fold: add kref refcounting" introduced a bug in z3fold_reclaim_page() with function exit that may leave pool->lock spinlock held. Here comes the trivial fix. Reported-by: Alexey Khoroshilov Signed-off-by: Vitaly Wool --- mm/z3fold.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/z3fold.c b/mm/z3fold.c index 8970a2f..f9492bc 100644 --- a/mm/z3fold.c +++ b/mm/z3fold.c @@ -667,6 +667,7 @@ static int z3fold_reclaim_page(struct z3fold_pool *pool, unsigned int retries) z3fold_page_unlock(zhdr); spin_lock(&pool->lock); if (kref_put(&zhdr->refcount, release_z3fold_page)) { + spin_unlock(&pool->lock); atomic64_dec(&pool->pages_nr); return 0; } -- 2.5.0