1 #include "logfsos.h"
2 #include "logfs.h"
3 #include "nandfs.h"
4 #include "local.h"
5
6 char *
nandfsreformatblock(Nandfs * nandfs,long block,uchar tag,ulong path,int xcount,long * xdata,void * llsave,int * markedbad)7 nandfsreformatblock(Nandfs *nandfs, long block, uchar tag, ulong path, int xcount, long *xdata, void *llsave, int *markedbad)
8 {
9 int bad;
10 char *errmsg;
11 NandfsBlockData *d;
12 long nerase;
13
14 if (nandfs->blockdata == nil)
15 return Eperm;
16
17 nerase = *(ulong *)llsave;
18
19 errmsg = nandfsformatblock(nandfs, block, tag, path,
20 nandfs->baseblock, nandfs->limitblock - nandfs->baseblock, xcount, xdata, &nerase, &bad);
21
22 if (markedbad)
23 *markedbad = bad;
24 if (errmsg)
25 return errmsg;
26
27 d = &nandfs->blockdata[block];
28 d->tag = bad ? LogfsTbad : tag;
29 d->path = path;
30 d->nerase = nerase;
31 d->partial = 0;
32
33 return nil;
34 }
35