Re: [RFC PATCH v2 0/2] block: fix backing_dev_info lifetime

From: Dan Williams
Date: Thu Jan 26 2017 - 11:40:23 EST

On Thu, Jan 26, 2017 at 5:17 AM, Christoph Hellwig <hch@xxxxxx> wrote:
> On Thu, Jan 26, 2017 at 11:06:53AM +0100, Jan Kara wrote:
>> 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...
> The other option is to simply not release the dev_t until the backing_dev
> is gone.

I came to a similar conclusion here:

James had some concerns, but I think its now clear this problem is
bigger than something we can fix locally in scsi.