123456789101112131415161718192021222324252627282930 |
- #include "stdinc.h"
- #include "dat.h"
- #include "fns.h"
- void
- zeropart(Part *part, int blocksize)
- {
- ZBlock *b;
- u64int addr;
- int w;
- fprint(2, "clearing %s\n", part->name);
- b = alloczblock(MaxIoSize, 1, blocksize);
- w = 0;
- for(addr = PartBlank; addr + MaxIoSize <= part->size; addr += MaxIoSize){
- if(writepart(part, addr, b->data, MaxIoSize) < 0)
- sysfatal("can't initialize %s, writing block %d failed: %r", part->name, w);
- w++;
- }
- for(; addr + blocksize <= part->size; addr += blocksize)
- if(writepart(part, addr, b->data, blocksize) < 0)
- sysfatal("can't initialize %s: %r", part->name);
- if(flushpart(part) < 0)
- sysfatal("can't flush writes to %s: %r", part->name);
- freezblock(b);
- }
|