From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753516AbdAZKHI (ORCPT ); Thu, 26 Jan 2017 05:07:08 -0500 Received: from mx2.suse.de ([195.135.220.15]:46210 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751203AbdAZKHC (ORCPT ); Thu, 26 Jan 2017 05:07:02 -0500 Date: Thu, 26 Jan 2017 11:06:53 +0100 From: Jan Kara To: Dan Williams Cc: Thiago Jung Bauermann , Jens Axboe , Jan Kara , Rabin Vincent , "linux-nvdimm@lists.01.org" , Linux Kernel Mailing List , linux-block@vger.kernel.org, Andi Kleen , Wei Fang , linux-fsdevel , Christoph Hellwig Subject: Re: [RFC PATCH v2 0/2] block: fix backing_dev_info lifetime Message-ID: <20170126100653.GB17099@quack2.suse.cz> References: <148375097100.37020.495735345355345658.stgit@dwillia2-desk3.amr.corp.intel.com> <7780787.RVFXFXDN3H@morokweng> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed 25-01-17 13:43:58, Dan Williams wrote: > On Mon, Jan 23, 2017 at 1:17 PM, Thiago Jung Bauermann > wrote: > > Hello Dan, > > > > Am Freitag, 6. Januar 2017, 17:02:51 BRST schrieb Dan Williams: > >> v1 of these changes [1] was a one line change to bdev_get_queue() to > >> prevent a shutdown crash when del_gendisk() races the final > >> __blkdev_put(). > >> > >> While it is known at del_gendisk() time that the queue is still alive, > >> Jan Kara points to other paths [2] that are racing __blkdev_put() where > >> the assumption that ->bd_queue, or inode->i_wb is valid does not hold. > >> > >> Fix that broken assumption, make it the case that if you have a live > >> block_device, or block_device-inode that the corresponding queue and > >> inode-write-back data is still valid. > >> > >> These changes survive a run of the libnvdimm unit test suite which puts > >> some stress on the block_device shutdown path. > > > > I realize that the kernel test robot found problems with this series, but FWIW > > it fixes the bug mentioned in [2]. > > > > Thanks for the test result. I might take a look at cleaning up the > test robot reports and resubmitting this approach unless Jan beats me > to the punch with his backing_devi_info lifetime change patches. Yeah, so my patches (and I suspect your as well), have a problem when the backing_device_info stays around because blkdev inode still exists, device gets removed (e.g. USB disk gets unplugged) but blkdev inode still stays around (there doesn't appear to be anything that would be forcing blkdev inode out of cache on device removal and there cannot be because different processes may hold inode reference) and then some other device gets plugged in and reuses the same MAJOR:MINOR combination. Things get awkward there, I think we need to unhash blkdev inode on device removal but so far I didn't make this work... Honza -- Jan Kara SUSE Labs, CR