At Mon, 17 Oct 2011 14:07:41 +0800,
Liu Yuan wrote:
> 
> On 10/17/2011 01:44 PM, MORITA Kazutaka wrote:
> 
> >> +
> >>  static int cluster_format(int argc, char **argv)
> >>  {
> >>    int fd, ret;
> >> @@ -36,6 +43,8 @@ static int cluster_format(int argc, char **argv)
> >>  
> >>    hdr.opcode = SD_OP_MAKE_FS;
> >>    hdr.copies = cluster_cmd_data.copies;
> >> +  if (cluster_cmd_data.nohalt)
> >> +          set_nohalt(&hdr.copies);
> > 
> > I think we should use hdr.flags to set the nohalt option.
> 
> 
> Okay.
> 
> >>  
> >> +int sys_nohalt()
> >> +{
> >> +  return sys->nr_sobjs & (1 << 31);
> > 
> > sys->nr_sobjs is used everywhere in the main thread, so I think this
> > doesn't work at all.
> > 
> > For example:
> > 
> >   $ sheep /store/0
> >   $ collie cluster format -H
> >   $ qemu-img create sheepdog:test 4G
> >   Formatting 'sheepdog:test', fmt=raw size=4294967296 
> >   qemu-img: Failed to write the requested VDI, test
> >   qemu-img: sheepdog:test: error while creating raw: Input/output error
> > 
> > We should declare another field in struct cluster info for the nohalt
> > option?
> 
> 
> Hmm, I just need one bit for indication. So one more filed is kind of
> wasteful. I am considering to change sys->status into bit operation,
> each bit stand for one status or other flag like nohalt. How do you
> think of it?

Looks good.  Can we replace too many (status == SD_STATUS_OK || status
== SD_STATUS_HALT) with one bit check?  I think the current codes is a
bit difficult to confirm correctness.

Thanks,

Kazutaka
-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to