:
:In message <[EMAIL PROTECTED]>, Ian Dowse writes:
:>
:>The fix should be relatively straightforward - either the code should
:>avoid linking new indirection blocks until all allocations succeed,
:>or it should back out the changes on failure.
:
:Here's one patch that seems to fix the problem. It may not be the best
:approach though?
:
:Ian

    I thought of this but I was worried that the softupdates blackmagic
    would get broken by it, so my approach is to actually unwind it which,
    between inbetween to FSYNC's, should be softupdates-safe.

                                                -Matt


:               bap[indirs[i - 1].in_off] = nb;
:+              if (allocib == NULL) {
:+                      /* 
:+                       * Writing bp would link in the newly allocated
:+                       * blocks; hold off in case of allocation failure
:+                       * later.
:+                       */
:+                      allocib = &bap[indirs[i - 1].in_off];
:+                      allocbp = bp;
:+                      continue;
:+              }
:...



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to