Skip to content
  • David Johnson's avatar
    Fix a race in common/mkvnode.pl vnodeCreate. · 345bf9bd
    David Johnson authored
    safeLibOp blocks all our vnodesetup-related signals from interrupting
    libvnode ops to ensure at least op-level consistency.  However, there
    was an opportunity for signals to sneak in, in between a successful
    vnodeCreate and the writing of the vnode.info file (that mkvnode.pl uses
    to know if the vnode was created or not).
    
    So I redid safeLibOp to make blocking signals optional (of course it's
    on for nearly all calls, except now vnodeCreate, and formerly
    vnodePoll).  Now there's a signal-safe zone all the way around
    vnodeCreate, including a StoreState() before we unblock.  This should
    ensure consistency in that particular spot.  I didn't think about
    whether this affects anything else.
    345bf9bd