From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Priebe - Profihost AG Subject: Re: btrfs regression since 4.X kernel NULL pointer dereference Date: Tue, 25 Aug 2015 11:44:13 +0200 Message-ID: <55DC38ED.9060502@profihost.ag> References: <55D8B193.8010906@profihost.ag> <20150825090030.GF31630@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: "linux-btrfs@vger.kernel.org" , linux-fsdevel@vger.kernel.org To: Christoph Hellwig Return-path: Received: from mail-ph.de-nserver.de ([85.158.179.214]:41596 "EHLO mail-ph.de-nserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755219AbbHYJoR (ORCPT ); Tue, 25 Aug 2015 05:44:17 -0400 In-Reply-To: <20150825090030.GF31630@lst.de> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Am 25.08.2015 um 11:00 schrieb Christoph Hellwig: > I think this is btrfs using a struct block_device that doesn't have > a valid queue pointer in it's gendisk for ->s_bdev. And there are > some fishy looking ->s_bdev assignments in the code which I suspect > are related to it: > > fs/btrfs/dev-replace.c: if (fs_info->sb->s_bdev == src_device->bdev) > fs/btrfs/dev-replace.c: fs_info->sb->s_bdev = tgt_device->bdev; > fs/btrfs/volumes.c: if (device->bdev == root->fs_info->sb->s_bdev) > fs/btrfs/volumes.c: root->fs_info->sb->s_bdev = next_device->bdev; > fs/btrfs/volumes.c: if (tgtdev->bdev == fs_info->sb->s_bdev) > fs/btrfs/volumes.c: fs_info->sb->s_bdev = next_device->bdev; > Would be very nice if anyone from btrfs can pick this up. Stefan