Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2996068imu; Mon, 19 Nov 2018 09:08:05 -0800 (PST) X-Google-Smtp-Source: AJdET5cMEW/RpNZerT51DQAMugKdDXvLtaBZVU6KnpyqtY9trwcByKfENu7pC0PTZy0aBfY8qksX X-Received: by 2002:a63:2b01:: with SMTP id r1mr20578628pgr.432.1542647285456; Mon, 19 Nov 2018 09:08:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542647285; cv=none; d=google.com; s=arc-20160816; b=iB2wOJrmjUTFcLlHO/D/qcqkul1c/oSUducS1YPYwSCv+Elle74NU9TrApnyBz8yDT WdiWJ9gPeKbBWGz7N5JWPSptcZR2Mx/nilkcK+lW/LheFm7aT2Weypc0mJ8xuPM/MJDG KERBLdMDSUPKDnuthvQWCE1nxX5Nalb/Ax+HogpIHZXZDZSH1Mt5DWFfzsGut7wP+okn kwknPfkvV56Hb9QIcs/TrnePpuPXgMT2+tgUQm6HBmaxwGcfZcfiyr1A6iC6+JyExIr1 1hUmr8WpncJ7ysZeNkcI0nWehrkCma27yZ9R9qu8IWNZJafbwTxtNHOO9FTX8LR2zMVV +ETg== 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=8NuvKsUVlvIUd4jh77YWnz+6ZWqyp+8S/x8BcGmiKsA=; b=Jc7OzBcoilqQZYWmvpVWc2qIM09T54O8iFex8CA25DibxFJfARZGIM7d40skTuFcuW BRflMN7APfu5MuscgYkJ2nOvv9kMsf2+hk1qyvFtKIRJ6QMhaAUf8AY4ncf9+IC9+8xl h5KjJQAzlpaCmG5PkTJXwtiMQMfCiYi71NtTNg1jfqr03nL7RiBIL2xw7WrLBO8Cyxdo tpr+IvcoURowzJox1vvNUxJjKD+72i0EE4Lv3+n4z/N8lIEziXMeKJfIfG2IXL/hIxfD 8f654z3ciIKJG7B2qPOQB1dgWKF4cWuImLyTXibohIfjLX6Dl6+Ah9AWlzNAkXet0sCI N0vA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Dgtna6a1; 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 f35si37671355pgf.449.2018.11.19.09.07.49; Mon, 19 Nov 2018 09:08:05 -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=Dgtna6a1; 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 S2407170AbeKTDau (ORCPT + 99 others); Mon, 19 Nov 2018 22:30:50 -0500 Received: from mail.kernel.org ([198.145.29.99]:46012 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405988AbeKTDat (ORCPT ); Mon, 19 Nov 2018 22:30:49 -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 A80C721508; Mon, 19 Nov 2018 17:06:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542647191; bh=829Qo0hMxGFkZJsV/I1a+D6oBvOiJ3ucM8z2YUfcYC4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dgtna6a11HO6hvqDfy19uZOL4Eqb9mQOGaxSo5ISq8U7Iw3aNF4/N2F+Z6238Wdbh K4qEob15WDldJGf+W2dAvshivi8ytabzDB2bcqEN3iuq+K0MemcctalJRo6sF3XbA9 BnNE9KFVOIzw0KJfXNUo6o/msEn4DqARaVBlj9L0= 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 3.18 68/90] ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry Date: Mon, 19 Nov 2018 17:29:50 +0100 Message-Id: <20181119162631.333818558@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181119162620.585061184@linuxfoundation.org> References: <20181119162620.585061184@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 3.18-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 @@ -1906,8 +1906,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;