tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Problems with raidframe under NetBSD-5.1/i386



On Thu, 6 Jan 2011 18:33:58 -0800
buhrow%lothlorien.nfbcal.org@localhost (Brian Buhrow) wrote:

>       Hello.  Ok.  I have more information, perhaps this is a known
> issue. If not, I can file a bug.

Please, do file a PR... this is a new one.

>       the problem seems to be that if you partition a raid set with
> gpt instead of disklabel, if a component of that raid set fails,  the
> underlying component is held open even after raidframe declares it
> dead. Thus, when you try to ask raidframe to do a reconstruct on the
> dead component, it can't open the component because the component is
> busy.

I think the culprit is in
src/sys/dev/raidframe/rf_netbsdkintf.c:rf_find_raid_components() where
in the: 

  if (wedge) {
    ...
    ac_list = rf_get_component(ac_list, dev,
         vp, device_xname(dv), dkw.dkw_size);
    continue;
  }

case that little "continue" is not letting the execution reach the:

        /* don't need this any more.  We'll allocate it again
           a little later if we really do... */
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
        VOP_CLOSE(vp, FREAD | FWRITE, NOCRED);
        vput(vp);

code which would close the opened wedge. :(  Both 5.1 and -current
suffer from the same issue (though the code in -current is slightly
different).

Thanks for the investigation and report...

Later...

Greg Oster



Home | Main Index | Thread Index | Old Index