> int > cwfree(Device *dev, Off addr) > { > int state; > > if(dev->type == Devcw) { > state = cwio(dev, addr, 0, Ofree); > if(state != Cdirty) > return 1; /* do not put in freelist */ > } > return 0; /* put in freelist */ > } > > now, such a Cdirty block could just sit in the freelist for a while no? > while the filesystem does many dump generations. if that Cdirty block > becomes part of the filesystem again because it is allocated, then > the next cwrecur() should pick it up and call split() on it.
why wouldn't it be marked for dump on the very first dump? - erik