We need to know if a block is already on an uninc list so we
don't put it there again.
So use a flag.
Signed-off-by: NeilBrown <neilb@suse.de>
#define B_Index 4
#define B_Sched 8
#define B_InoIdx 16
-
+#define B_Uninc 32
lafs_summary_update(b->ino, b->physaddr, addr,
!!(b->flags & B_Index));
b->physaddr = addr;
- b->chain = p->uninc;
- p->uninc = b;
+ if (!(b->flags & B_Uninc)) {
+ b->flags |= B_Uninc;
+ b->chain = p->uninc;
+ p->uninc = b;
+ }
}
ib->uninc = b->chain;
b->chain = NULL;
+ b->flags &= ~B_Uninc;
addr = b->fileaddr - ib->b.fileaddr;
if (addr >= max_addr)