From 28942ead413418b56c5be78e8c4c400881fba72e Mon Sep 17 00:00:00 2001 From: forsyth Date: Thu, 15 Dec 2011 16:40:16 +0000 Subject: 20111215-1640 --- liblogfs/remove.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'liblogfs/remove.c') diff --git a/liblogfs/remove.c b/liblogfs/remove.c index acc85dd2..c97e733c 100644 --- a/liblogfs/remove.c +++ b/liblogfs/remove.c @@ -1,4 +1,4 @@ -#include "lib9.h" +#include "logfsos.h" #include "logfs.h" #include "local.h" @@ -6,7 +6,7 @@ void logfsfreeanddirtydatablockcheck(LogfsServer *server, long seq) { DataBlock *db; - u32int mask; + Pageset mask, allpages; if(seq >= server->ndatablocks) return; @@ -16,7 +16,7 @@ logfsfreeanddirtydatablockcheck(LogfsServer *server, long seq) mask = db->dirty & db->free; if(mask) { - u32int allpages = logfsdatapagemask(1 << server->ll->l2pagesperblock, 0); + allpages = logfsdatapagemask(1 << server->ll->l2pagesperblock, 0); if((mask & allpages) == allpages) { //print("logfsfreedatapages: returning block to the wild\n"); logfsbootfettleblock(server->lb, db->block, LogfsTnone, ~0, nil); @@ -28,7 +28,7 @@ logfsfreeanddirtydatablockcheck(LogfsServer *server, long seq) } void -logfsfreedatapages(LogfsServer *server, long seq, u32int mask) +logfsfreedatapages(LogfsServer *server, long seq, Pageset mask) { DataBlock *db; if(seq >= server->ndatablocks) @@ -50,11 +50,13 @@ logfsunconditionallymarkfreeanddirty(void *magic, Extent *e, int hole) LogfsLowLevel *ll = server->ll; DataBlock *db; long blockindex; - int page, offset; + int page, offset, npages; + Pageset mask; + logfsflashaddr2spo(server, e->flashaddr, &blockindex, &page, &offset); if(blockindex < server->ndatablocks && (db = server->datablock + blockindex)->block >= 0) { - int npages = ((offset + e->max - e->min) + (1 << ll->l2pagesize) - 1) >> ll->l2pagesize; - u32int mask = logfsdatapagemask(npages, page); + npages = ((offset + e->max - e->min) + (1 << ll->l2pagesize) - 1) >> ll->l2pagesize; + mask = logfsdatapagemask(npages, page); if((db->dirty & mask) != mask) print("markfreeandirty: not all pages dirty\n"); //print("markfreeanddirty: datablock %ld mask 0x%.8ux\n", blockindex, mask); @@ -144,4 +146,3 @@ clunk: logfsfidmapclunk(server->fidmap, fid); return errmsg; } - -- cgit v1.2.3