At Tue, 17 Mar 2015 13:16:00 +0800,
Liu Yuan wrote:
> 
> On Tue, Mar 17, 2015 at 02:03:03PM +0900, Hitoshi Mitake wrote:
> > At Tue, 17 Mar 2015 13:58:08 +0900,
> > Hitoshi Mitake wrote:
> > > 
> > > At Tue, 17 Mar 2015 13:51:48 +0900,
> > > Hitoshi Mitake wrote:
> > > > 
> > > > At Tue, 17 Mar 2015 12:42:35 +0800,
> > > > Liu Yuan wrote:
> > > > > 
> > > > > On Mon, Mar 16, 2015 at 08:49:34PM +0800, Liu Yuan wrote:
> > > > > > From: Liu Yuan <liuy...@cmss.chinamobile.com>
> > > > > > 
> > > > > > This patch fixes following problem:
> > > > > > 
> > > > > > $ dog vdi create test 100M
> > > > > > $ dog vdi delete test
> > > > > > $ dog vdi create test 200M
> > > > > > $ dog vdi list # expect show test, but nothing shows out.
> > > > > > 
> > > > > > Which was brought by
> > > > > > 
> > > > > > *commit f68feab7edc0ded86701a2e902d85616b24942ab
> > > > > > *Author: Saeki Masaki <saeki.mas...@po.ntts.co.jp>
> > > > > > *Date:   Wed Nov 26 10:50:46 2014 +0900
> > > > > > 
> > > > > >     sheep/dog: introduce new bitmap for delete vdi
> > > > > > 
> > > > > > Cc: Saeki Masaki <saeki.mas...@po.ntts.co.jp>
> > > > > > Signed-off-by: Liu Yuan <liuy...@cmss.chinamobile.com>
> > > > > > ---
> > > > > >  sheep/ops.c | 7 +++++--
> > > > > >  1 file changed, 5 insertions(+), 2 deletions(-)
> > > > > > 
> > > > > > diff --git a/sheep/ops.c b/sheep/ops.c
> > > > > > index 8a0f77c..464ae0b 100644
> > > > > > --- a/sheep/ops.c
> > > > > > +++ b/sheep/ops.c
> > > > > > @@ -130,11 +130,14 @@ static int post_cluster_new_vdi(const struct 
> > > > > > sd_req *req, struct sd_rsp *rsp,
> > > > > >     unsigned long nr = rsp->vdi.vdi_id;
> > > > > >     int ret = rsp->result;
> > > > > >  
> > > > > > -   sd_info("req->vdi.base_vdi_id: %x, rsp->vdi.vdi_id: %x", 
> > > > > > req->vdi.base_vdi_id, rsp->vdi.vdi_id);
> > > > > > +   sd_info("req->vdi.base_vdi_id: %x, rsp->vdi.vdi_id: %x",
> > > > > > +           req->vdi.base_vdi_id, rsp->vdi.vdi_id);
> > > > > >  
> > > > > >     sd_debug("done %d %lx", ret, nr);
> > > > > > -   if (ret == SD_RES_SUCCESS)
> > > > > > +   if (ret == SD_RES_SUCCESS) {
> > > > > >             atomic_set_bit(nr, sys->vdi_inuse);
> > > > > > +           atomic_clear_bit(nr, sys->vdi_deleted);
> > > > > > +   }
> > > > > >  
> > > > > >     return ret;
> > > > > >  }
> > > > > > -- 
> > > > > > 1.9.1
> > > > > > 
> > > > > 
> > > > > At least this patch fixes a real problem and should be applied, 
> > > > > Hitoshi?
> > > > > 
> > > > > Yuan
> > > > 
> > > > Applied this one, thanks.
> > > 
> > > On the second thought, this problem cannot happen on the current
> > > master. It is caused by the old invalid recycling. So I'll revert
> > > it, OK?
> > > # seems that there's no patches after this one, I'll simply rebase and
> > > # update forcibly
> > 
> > Removed this one, sorry for confusion.
> 
> Current master actually have this problem because bit in vdi_deleted never get
> cleared.

If we enable recycling, the clearing process is executed in
run_vid_gc(). If we disable, the bitmap should never be cleared so
there's no problem.

Could you apply my patchset for adding the option?

Thanks,
Hitoshi
-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
https://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to