Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp198361yba; Mon, 20 May 2019 07:16:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqyoinAe7gG8LFLMmJPohkwPqfoDfTAKIyG3OYbciczU/9VOOwGpPjjrTygzqNWbPkDd230R X-Received: by 2002:a62:fb18:: with SMTP id x24mr15787977pfm.76.1558361790530; Mon, 20 May 2019 07:16:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558361790; cv=none; d=google.com; s=arc-20160816; b=mhmAQcNMZmQnwBJ5luXzSDE/MLBaoFnKxTSAEB7I4hfuP1e/wmq9GPsC7vkZ8/lgZ6 Z2q8ESvGBl2TLlACyjjAzdm8gsnmWr0CW/OJMmmsynlSn64llPKChmyWF4l+gNWd07NP tlOVaporrDONhKntzK7UH9MrowNKHXJvs2tkNtOAkXW9I400K7Wgh590k2tqQxoJrdGn H2D10nD04KD6keKpQyj12K9+T8B7J02v3wcQZDtV1wMJBgkN3KiTS47HaVZLh2NNZ8ef AD4BVwF0aciNcAzsRjlA2sXew46McaLy/jpB1uRGVZtGNJMMI1615uu+tKwhWaoyx2O7 245Q== 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=0um2xegXxJesGAL9JyRn2qO9wk9b4ASbEFp2MOO3qI8=; b=F0xSWUpi7MEn9CyR+SHlXdoM2WcXr/iZUQ6ecvjZ1DkpxUhaYhoCNx5gcheIdyOqYR jJp1yV+8zejNmA5He+9bBGV3c+1lU2w/SlMEcc3xdJnS+EsUmn03x3rxntAsmj/dKB/N /lLHvIFtaN6huK8Mum0tyHALa3iTnxbxDyLLWyBOO8GuB7oYrzjFezK3pnqlywXNHkaF VHG9DwYQxnGL1RMcuTry6aK1F+G8PhoSU3blDLOQKpp7mpcbr2GRJrVvXWRh7V+RNMPU 9XZLY9VcrHuhHTKEdvDo9s8ZaQPsXRFYJW5rc9FGq5REdcYBsCgAubDqvv1V66njtQrc jryg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="u7NWRb/h"; 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 j1si19000043pld.399.2019.05.20.07.16.14; Mon, 20 May 2019 07:16:30 -0700 (PDT) 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="u7NWRb/h"; 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 S2387695AbfETMSF (ORCPT + 99 others); Mon, 20 May 2019 08:18:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:59144 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730757AbfETMSC (ORCPT ); Mon, 20 May 2019 08:18:02 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.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 71DD820815; Mon, 20 May 2019 12:18:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1558354681; bh=3cbeNFZjDYtiNUPJwWdnvJ2QlJeexinkSH9ggi0b/14=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u7NWRb/hV+JWwblpZ7Tm4C3DjD5RcfK5kvsD+A1vTfFdilYBy/tLUQr5emOnOiW+A XIo3MefUPNOTPSIwxoXbmGcKdz4Wlxso43hCHy4ynJfRYzaWrnm6F+ZH33TXbPvC5F XLEHoyQzfpCXrqnE39rXgc9+eEo0v2o0Bl+HIrro= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eric Ren , Jiufei Xue , Theodore Tso , Jan Kara , stable@kernel.org Subject: [PATCH 4.9 27/44] jbd2: check superblock mapped prior to committing Date: Mon, 20 May 2019 14:14:16 +0200 Message-Id: <20190520115234.268070147@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190520115230.720347034@linuxfoundation.org> References: <20190520115230.720347034@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Jiufei Xue commit 742b06b5628f2cd23cb51a034cb54dc33c6162c5 upstream. We hit a BUG at fs/buffer.c:3057 if we detached the nbd device before unmounting ext4 filesystem. The typical chain of events leading to the BUG: jbd2_write_superblock submit_bh submit_bh_wbc BUG_ON(!buffer_mapped(bh)); The block device is removed and all the pages are invalidated. JBD2 was trying to write journal superblock to the block device which is no longer present. Fix this by checking the journal superblock's buffer head prior to submitting. Reported-by: Eric Ren Signed-off-by: Jiufei Xue Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara Cc: stable@kernel.org Signed-off-by: Greg Kroah-Hartman --- fs/jbd2/journal.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -1339,6 +1339,10 @@ static int jbd2_write_superblock(journal journal_superblock_t *sb = journal->j_superblock; int ret; + /* Buffer got discarded which means block device got invalidated */ + if (!buffer_mapped(bh)) + return -EIO; + trace_jbd2_write_superblock(journal, write_flags); if (!(journal->j_flags & JBD2_BARRIER)) write_flags &= ~(REQ_FUA | REQ_PREFLUSH);