At Wed, 10 Sep 2014 20:08:32 +0800, Bingpeng Zhu wrote: > > If we enable diskvnodes mode and encounter EIO, running dog > cluster info will show wrong disk number in the new epoch. > We should update node disks when handling EIO and unplug the > disk. > > Signed-off-by: Bingpeng Zhu <bingpeng....@alibaba-inc.com> > --- > sheep/md.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/sheep/md.c b/sheep/md.c > index b13d30a..378d1f1 100644 > --- a/sheep/md.c > +++ b/sheep/md.c > @@ -541,6 +541,9 @@ static void md_do_recover(struct work *work) > out: > sd_rw_unlock(&md.lock); > > + if (disk) > + update_node_disks(); > +
The change looks reasonable. But I have a question: > if (nr > 0) > kick_recover(); Does the above conditional branch (nr > 0) required? When a node has single disk and faces EIO, md.nr_disks can change from 1 to 0. In such a case, the code will not call kick_recover(). I think it is a problematic behavior. How do you think? Thanks, Hitoshi > > -- > 1.7.1 > > > > > -- > sheepdog mailing list > sheepdog@lists.wpkg.org > http://lists.wpkg.org/mailman/listinfo/sheepdog -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog