Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2979003imu; Mon, 19 Nov 2018 08:55:03 -0800 (PST) X-Google-Smtp-Source: AJdET5fgO0CUc0ExOa1riamQ5ZvNLXKTkjTep+gVZo8O8kr+0vGG8X3Jt27ESlyqUCo6wSPQ61L8 X-Received: by 2002:a17:902:8f8f:: with SMTP id z15-v6mr23272502plo.257.1542646503278; Mon, 19 Nov 2018 08:55:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542646503; cv=none; d=google.com; s=arc-20160816; b=jfpoGqln6z60F+wl2FEASBfx8lCcljAL8hsACeUsae9Dx63xSPs8dVVijUNEkTalIt HaAl+jxdtqAYmeeEYC/RsPDhvmPbcsmDR4qIfyQMMSTBD5bPQEBXPSf+7oNLHCcxXFNK okpzS/QKNqKbkm0BYzlvC/v/cuFJ+jDkF8DJ9OfBt57OIat9uv/8wLKvGGldJMeXNCBM ws6gkkTeGUw1eI8DtpCZrsPAOI3PN7vQTLYn2Afe73NN2jN2+vl+j1BQCcsqsO0R5aX4 nuj0A2J74mLFP2YSnMWw4vGD7QVjcv6G+LHw5c2cCJO5sjRzofI7OvVu8PRsMRiQcXtO ikKQ== 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=v/m7sOCFC79vTzsNALwW/6JnPcEaQVETTPgpT8sECFE=; b=hrnEIMk6FazqgNG5E4oSVAPRbXp3KAfT0Ak/RCBTbOrmsZT4sM2XBJL+Gs32RU7syB XK7JUoECUDtgBJIWCRE86HKGHETULBZXduMvDotFgJo2w6MoHjiXBW8j13uST4DNn/aN qFYi3bre3/UTsO0pRZWdpSkk0i76hprw2oyYSykzjZxnXi55l3ZwXB93Yxx2RSW/PdBu ZhfZue5O89CprzLedIeD8XIa0YrpvyAQz9C6a7tYLfdu6c+PjMPp3M+9Wst7nWSOX9JS H9pyx/O7O1ySyR4tGsRLlGs9IWW66QN8Af4Z/7IIT1A0K3bdT5fa7i2T4sUL3omV4dMN fK4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=f1cA9okx; 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 n18-v6si39744544plp.294.2018.11.19.08.54.48; Mon, 19 Nov 2018 08:55:03 -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=f1cA9okx; 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 S2390901AbeKTDSQ (ORCPT + 99 others); Mon, 19 Nov 2018 22:18:16 -0500 Received: from mail.kernel.org ([198.145.29.99]:57042 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390145AbeKTDSO (ORCPT ); Mon, 19 Nov 2018 22:18:14 -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 7793520851; Mon, 19 Nov 2018 16:54:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542646441; bh=JjX099bOTShLhZGfRYEpbUoWT11WHrFwmiO9vjnJ9IQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f1cA9okxZdDnZ0WBAdcwtGp7/B0y19VOBsDRR/NwCBXNORz6lNLf6nIXjqy5bDP0Z ZLsA0DmdKVU5tpizoYRCxUplUyojs+lRS6f+l91pbIQNUYVAwuvOXN/IBHFqiM+Txg tYfWa5MuPsKnO1zflgBdmfJfN9bCBZWY1vE41Vss= 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.9 43/83] ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry Date: Mon, 19 Nov 2018 17:29:09 +0100 Message-Id: <20181119162621.009961569@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181119162612.046511542@linuxfoundation.org> References: <20181119162612.046511542@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.9-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;