From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Thornber Subject: Re: dmcache RAID1 bug? Date: Thu, 20 Nov 2014 14:04:26 +0000 Message-ID: <20141120140426.GA16741@debian> References: <20141117144659.GA29929@redhat.com> Reply-To: device-mapper development Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: device-mapper development Cc: Mike Snitzer List-Id: dm-devel.ids On Wed, Nov 19, 2014 at 07:39:44PM -0200, Leonardo Santos wrote: > After run regression tests using 'git bisect', I identify that the error > was created after commit 8c081b52c6833a30a69ea3bdcef316eccc740c87 > > To reproduce this error just: > - create a raid1 HDDs for origin device; > - create a cache device with SSDs (could or not be raid) > - create a metadata device with SSDs (could or not be raid) > - create a cache device using prior devices > - kernel crashes. > > @@ -1115,8 +1142,7 @@ static void check_for_quiesced_migrations(struct cache *cache, > return; > > INIT_LIST_HEAD(&work); > - if (pb->all_io_entry) > - dm_deferred_entry_dec(pb->all_io_entry, &work); > + dm_deferred_entry_dec(pb->all_io_entry, &work); > > if (!list_empty(&work)) > queue_quiesced_migrations(cache, &work); This looks suspicious, I believe the all_io_entry is not set if the io covers a complete block. Any chance you could test with this fragment backed out please? - Joe