lh 47 kernel/log.c struct logheader lh; lh 72 kernel/log.c for (tail = 0; tail < log.lh.n; tail++) { lh 74 kernel/log.c printk("recovering tail %d dst %d\n", tail, log.lh.block[tail]); lh 77 kernel/log.c struct buf *dbuf = bread(log.dev, log.lh.block[tail]); // read dst lh 92 kernel/log.c struct logheader *lh = (struct logheader *)(buf->data); lh 94 kernel/log.c log.lh.n = lh->n; lh 95 kernel/log.c for (i = 0; i < log.lh.n; i++) { lh 96 kernel/log.c log.lh.block[i] = lh->block[i]; lh 110 kernel/log.c hb->n = log.lh.n; lh 111 kernel/log.c for (i = 0; i < log.lh.n; i++) { lh 112 kernel/log.c hb->block[i] = log.lh.block[i]; lh 123 kernel/log.c log.lh.n = 0; lh 138 kernel/log.c } else if (log.lh.n + (log.outstanding + 1) * MAXOPBLOCKS > LOGBLOCKS) { lh 192 kernel/log.c for (tail = 0; tail < log.lh.n; tail++) { lh 194 kernel/log.c struct buf *from = bread(log.dev, log.lh.block[tail]); // cache block lh 205 kernel/log.c if (log.lh.n > 0) { lh 209 kernel/log.c log.lh.n = 0; lh 229 kernel/log.c if (log.lh.n >= LOGBLOCKS) lh 234 kernel/log.c for (i = 0; i < log.lh.n; i++) { lh 235 kernel/log.c if (log.lh.block[i] == b->blockno) // log absorption lh 238 kernel/log.c log.lh.block[i] = b->blockno; lh 239 kernel/log.c if (i == log.lh.n) { // Add new block to log? lh 241 kernel/log.c log.lh.n++;