Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2973433imu; Mon, 19 Nov 2018 08:50:13 -0800 (PST) X-Google-Smtp-Source: AJdET5djqUh+KEbktykAfT4BHJACkNnOxHgDC3IuM2x8HTRDZZfwhHgQ+C0KxJ6/U8J8IAovH+k8 X-Received: by 2002:a63:1e17:: with SMTP id e23mr20546617pge.130.1542646213352; Mon, 19 Nov 2018 08:50:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542646213; cv=none; d=google.com; s=arc-20160816; b=X2Uld21jLhDnR7ws+P8wnP/TIklitLWBDtSiempeyJ04VHfEz/CIgZMAgeS1Dy8iqH E3FsToRoIfpPvJe7nxQGqUVFzVE3St/RB5Ax0iH51Xbe1vkLSTzuiqglr+l3XontySuh xLjrckcaDjL0TC8jV6CZhjS+rYLv9e2UY2d8O9ZfaedEkF3pXVChYSYRBHYKczJblSeq CsohuFC0OKWDzgQjXIbQOBbPD866Shmu+TazXlgzTwm8QbqX/k1DND0zcuacvDifGPmd YS+xSUOaYLRUMq8eKDS/oPlD6fOtaSP309FcUGgtFLijQ1FFyuzovMwHacvlm8T0bl2S GvqA== 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=r3M6B6c0/iAqfNv97S8LSxTGlwEPtfA7C6MCDQBkyi8=; b=Lv2ymAJdaMnTP4wc7Mxs2q+KYWQQssIsmdxlFZcfH8q2dwZXkJi6zig7cNrL+4hAEv EewlNDek1UbAkueNFP5YddIMYWtCe0ZCFkoGQZw+JFnbkEmXmQaW1va0b6yg5cdDx/8n Ex7+0pTxGDuL88JGn+5guGzCz8pU/dYejf0H12eEl1qNYsxROGRZFVAsQ/PlF0o/TIs9 N+Fh9+da6xvdPDk2j3ZKkA6cwEeAH1NghkYgVjoxqbNrsOtZKz91gvG1mRJzDlrahIYd b38oDf+82TghqzHD0+QBL0TS+gb/qs1n5IoE81++Oew9mPQso8/ka90n7P2suRms6JD7 GZ+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=MwtVc0xj; 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 y8si20372033pfn.26.2018.11.19.08.49.58; Mon, 19 Nov 2018 08:50:13 -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=MwtVc0xj; 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 S2389670AbeKTDNZ (ORCPT + 99 others); Mon, 19 Nov 2018 22:13:25 -0500 Received: from mail.kernel.org ([198.145.29.99]:50160 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389110AbeKTDNY (ORCPT ); Mon, 19 Nov 2018 22:13:24 -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 E666E2089F; Mon, 19 Nov 2018 16:49:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542646152; bh=2bF35K38H6Znm+NOjcf+THSF/1XIB/QSfk1I1KZv4Rc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MwtVc0xjaa2OxuzouSDyCI7u8BWVUtuyUuRnq0xVmEX4dqKq4+2Fiay+HBkXJ2WwL gnKGitkBqNhUhegk04Lg/ZlvAl1ciPbsW31pzei62k6iPrCbKGj7SZVIvwUXcJWw5F 1n92zzh/uD8LRTSgVN5GpvBy+i2OqGQOk9YiWEq4= 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.14 056/124] ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry Date: Mon, 19 Nov 2018 17:28:30 +0100 Message-Id: <20181119162624.384996613@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181119162612.951907286@linuxfoundation.org> References: <20181119162612.951907286@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.14-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 @@ -1896,8 +1896,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;