Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2956881imu; Mon, 19 Nov 2018 08:36:15 -0800 (PST) X-Google-Smtp-Source: AFSGD/V+3I4Hj4nbVnpDK4LUfXrPTAmoAZp1F8RniY/tTSB2qMwVgSSxrTSLhTOCNpqpBLpIgD9L X-Received: by 2002:a17:902:d891:: with SMTP id b17mr8904636plz.80.1542645375646; Mon, 19 Nov 2018 08:36:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542645375; cv=none; d=google.com; s=arc-20160816; b=KBlM7GoIdpduTA3DICI9RjupzkEfLGHxT+45Wr5FnzkrF6jnOajMk9vE3GYG7CFvuB 9BD/3QvrI1MRqKPuZyoDJ+iwI6N68PmaP7vRTMWETNev37QpEMBeh+oxkmWzrf259zs4 vNYRkHZ7Cb6/mkZQFyoXzo696Oe/AZd6T5ozTkJCcoN6ZW+ungiwgNm1/P2AE6XTuFwr ZeWf1KX23jRZLriviCD+hXnUncTs6aP6HZIfWiioZvmxifOk6xqNXvZy6nKXq8fQgSD5 JkQEuVuE19EtOuO73cOFJCYuVOw6tDwtwBYD04QwBZzJI2lNkcfaL1wIAP1LbYIZOPfM TX8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=fE9kzfXqojUqoP8s7ZqQOeBGpDZ7xg8sCUEfyELDM00=; b=DqpSc1tRC+cXBqoKnMzArBEV7wPF+rxNEVNLWlHng1Zsqxo2uzP2QC4BLFHxIqegQR epi9WiprhQQhWWAS1Qh3spwdfNoz62ZHrDv5v7FwVeFKQL7dk0jWi6sWc88NXn/CPBuW 7oMAUi6yDWJnWLsTFmXkiqeGCnKTesFud3VXD1k4FgUO59GPke3dpP6sHGvxHQzNqsyu mOiVHZQKeyaxsOqwiJCIh0lUTrj3kCSknY376TuJ623tRMX9pt6uw36t9+c2SFX66Ki1 MPUTsqZAy6H03h6XY8eE6eLH+PXYEAnuj6dEZd0D5wNTUU5BFrlJ5BLYazXKw78uL8lr DkvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Bb+SowxT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g12si30935670pgd.567.2018.11.19.08.36.00; Mon, 19 Nov 2018 08:36:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Bb+SowxT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731430AbeKTC6o (ORCPT + 99 others); Mon, 19 Nov 2018 21:58:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:57828 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730381AbeKTC6n (ORCPT ); Mon, 19 Nov 2018 21:58:43 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BC46720870; Mon, 19 Nov 2018 16:34:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542645275; bh=9poaTKq6O26jOGWKIxk5DO7LfzPwahFGUh8eSdFj7tc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bb+SowxTJqEGFYSWCZWKBRT/vCvcnHWshu62i573ZqW/1BLOA50Xzz7qnm4LBEN0/ HyAJqfxePvpATZLE5ourd/cEjSfzYNRrEzWhzSRYpbZsaO7sIlg+l+i89N5OKxBfts eOwDAWEX4qnMDC/+j+N6lnJaFDVLxLA+qTzuG4+M= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Changwei Ge , Changkuo Shi , Andrew Morton , Mark Fasheh , Joel Becker , Junxiao Bi , Joseph Qi , Linus Torvalds Subject: [PATCH 4.19 101/205] ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry Date: Mon, 19 Nov 2018 17:26:48 +0100 Message-Id: <20181119162633.392139512@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181119162616.586062722@linuxfoundation.org> References: <20181119162616.586062722@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ From: Changwei Ge commit 29aa30167a0a2e6045a0d6d2e89d8168132333d5 upstream. Somehow, file system metadata was corrupted, which causes ocfs2_check_dir_entry() to fail in function ocfs2_dir_foreach_blk_el(). According to the original design intention, if above happens we should skip the problematic block and continue to retrieve dir entry. But there is obviouse misuse of brelse around related code. After failure of ocfs2_check_dir_entry(), current code just moves to next position and uses the problematic buffer head again and again during which the problematic buffer head is released for multiple times. I suppose, this a serious issue which is long-lived in ocfs2. This may cause other file systems which is also used in a the same host insane. So we should also consider about bakcporting this patch into linux -stable. Link: http://lkml.kernel.org/r/HK2PR06MB045211675B43EED794E597B6D56E0@HK2PR06MB0452.apcprd06.prod.outlook.com Signed-off-by: Changwei Ge Suggested-by: Changkuo Shi Reviewed-by: Andrew Morton Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Joseph Qi Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- fs/ocfs2/dir.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- a/fs/ocfs2/dir.c +++ b/fs/ocfs2/dir.c @@ -1897,8 +1897,7 @@ static int ocfs2_dir_foreach_blk_el(stru /* On error, skip the f_pos to the next block. */ ctx->pos = (ctx->pos | (sb->s_blocksize - 1)) + 1; - brelse(bh); - continue; + break; } if (le64_to_cpu(de->inode)) { unsigned char d_type = DT_UNKNOWN;