code: mafs

Download patch

ref: 5349841ff825badd1a095e8dfe4739beee4d6835
parent: 2b599f96e0df12f7558adee2979cce0a34395412
author: 9ferno <gophone2015@gmail.com>
date: Wed Nov 16 07:48:53 EST 2022

split Tag to a leading tag and a trailing qpath

--- a/9p.c
+++ b/9p.c
@@ -669,7 +669,7 @@
 				goto Nextdentry;
 			}
 
-			if(dchild->type != Tdentry){
+			if(dchild->tag != Tdentry){
 				putbuf(cbuf);
 				putbuf(dbuf);
 				respond(req, errstring[Ephase]);
@@ -1423,7 +1423,7 @@
 	// odentry(d);
 
 	// little data, stuff it in the Dentry
-	if(d->size<=Ddatasize && offset+wbufsize < Ddatasize){
+	if(d->size<=Ddatasize && offset+wbufsize <= Ddatasize){
 		memcpy(d->buf+offset, wbuf, wbufsize);
 		if(offset+wbufsize > d->size)
 			d->size = offset+wbufsize;
--- a/all.h
+++ b/all.h
@@ -104,13 +104,13 @@
 void	initmemunitpool(u64 nunits);
 u8 *allocmemunits(u16 len);
 void	freememunits(u8 *m, u16 len);
-int		checktag(Iobuf *p, u16 tag, u64 qpath);
+int		checktag(Iobuf *p, u8 tag, u64 qpath);
 Iobuf*	getbuf(u64 blkno, u16 len, u8 readonly, u8 freshalloc);
 Iobuf*	getbufchk(u64 blkno, u8 readonly, int tag, u64 qpath);
 void	iobufinit(void);
 void	putbuf(Iobuf *p);
 void	putbuffree(Iobuf *p);
-void	settag(Iobuf *p, int tag, u64 qpath);
+void	settag(Iobuf *p, u8 tag, u64 qpath);
 void	showbuf(Iobuf *p);
 
 /* writer functions */
--- a/blk.c
+++ b/blk.c
@@ -4,16 +4,6 @@
 #include "fns.h"
 
 void
-showind(int fd, u8 *buf)
-{
-	int j;
-	u64 *lbuf;
-
-	lbuf = (u64*)buf;
-	for(j = 0; j<Nindperblock; j++)
-		fprint(fd, "	%d %llud\n", j, lbuf[j]);
-}
-void
 showdentryhdr(int fd, u8 *buf)
 {
 	Dentry *d;
@@ -20,6 +10,9 @@
 
 	d = (Dentry*)buf;
 	fprint(fd, "name %s\n", d->name);
+	fprint(fd, "uid %d\n", d->uid);
+	fprint(fd, "gid %d\n", d->gid);
+	fprint(fd, "muid %d\n", d->muid);
 	fprint(fd, "size %llud\n", d->size);
 	fprint(fd, "pdblkno %llud\n", d->pdblkno);
 	fprint(fd, "pqpath %llud\n", d->pqpath);
@@ -27,41 +20,15 @@
 	fprint(fd, "qid.path %llud\n", d->qid.path);
 	fprint(fd, "qid.version %ud\n", d->qid.version);
 	fprint(fd, "mode %uo\n", d->mode);
-	fprint(fd, "uid %d\n", d->uid);
-	fprint(fd, "gid %d\n", d->gid);
-	fprint(fd, "muid %d\n", d->muid);
 }
 void
-showdentry(int fd, u8 *buf)
-{
-	int j;
-	Dentry *d;
-
-	showdentryhdr(fd, buf);
-	d = (Dentry*)buf;
-	if(d->size <= Ddatasize && (d->mode&DMDIR) == 0 &&
-		d->qid.path != Qproot0 && d->qid.path != Qproot1
-		){
-		fprint(fd, "%s", d->buf);
-		return;
-	}
-	fprint(fd, "direct blocks\n");
-	for(j = 0; j<Ndblock; j++)
-		fprint(fd, "	%d %llud\n", j, d->dblocks[j]);
-	fprint(fd, "indirect blocks\n");
-	for(j = 0; j<Niblock; j++)
-		fprint(fd, "	%d %llud\n", j, d->iblocks[j]);
-}
-void
 showmagic(int fd, u8 *d)
 {
-	showdentryhdr(fd, d);
 	fprint(fd, "%s", ((Dentry*)d)->buf);
 }
 void
 showconfig(int fd, u8 *d)
 {
-	showdentryhdr(fd, d);
 	fprint(fd, "%s", ((Dentry*)d)->buf);
 }
 void
@@ -69,15 +36,53 @@
 {
 	Super *s;
 
-	showdentryhdr(fd, d);
 	s = (Super*)d;
 	fprint(fd, "qidgen %llud\n", s->qidgen);
 	fprint(fd, "fsok %llud\n", s->fsok);
 }
 void
+showdentry(int fd, u8 *buf)
+{
+	int j;
+	Dentry *d;
+
+	showdentryhdr(fd, buf);
+	d = (Dentry*)buf;
+	if(d->path == Qpconfig || d->path == Qpconfig0 || d->path == Qpconfig1)
+		showconfig(fd, buf);
+	else if(d->path == Qpsuper || d->path == Qpsuper0 || d->path == Qpsuper1)
+		showsuper(fd, buf);
+	else if(d->path == Qpmagic)
+		showmagic(fd, buf);
+	else if(d->size <= Ddatasize && (d->mode&DMDIR) == 0 &&
+			d->qid.path != Qproot0 && d->qid.path != Qproot1){
+		fprint(fd, "%s", d->buf);
+	}else{
+		fprint(fd, "direct blocks\n");
+		for(j = 0; j<Ndblock; j++)
+			fprint(fd, "	%d %llud\n", j, d->dblocks[j]);
+		fprint(fd, "indirect blocks\n");
+		for(j = 0; j<Niblock; j++)
+			fprint(fd, "	%d %llud\n", j, d->iblocks[j]);
+	}
+}
+void
+showind(int fd, u8 *buf)
+{
+	int j;
+	Content *t;
+
+	t = (Content*)buf;
+	for(j = 0; j<Nindperblock; j++)
+		fprint(fd, "	%d %llud\n", j, t->bufa[j]);
+}
+void
 showdata(int fd, u8 *buf)
 {
-	fprint(fd, "%s", (char*)buf);
+	Content *c;
+
+	c = (Content*)buf;
+	fprint(fd, "%s", c->buf);
 }
 
 void
@@ -87,31 +92,27 @@
 	Dentry *d;
 
 	d = (Dentry*)buf;
-	/* this is not a fool proof way of identifying a Dentry */
-	if(d->type == Tdentry && d->len == Dentryunits){
-		if(d->path == Qpconfig || d->path == Qpconfig0 || d->path == Qpconfig1)
-			showconfig(fd, buf);
-		else if(d->path == Qpsuper || d->path == Qpsuper0 || d->path == Qpsuper1)
-			showsuper(fd, buf);
-		else if(d->path == Qpmagic)
-			showmagic(fd, buf);
-		else
-			showdentry(fd,buf);
+	if(d->tag == Tblank){
+		fprint(fd, "%s\n", tagnames[d->tag]);
 		return;
+	}else if(d->tag == Tdentry){
+		fprint(fd, "%s %llud\n", tagnames[d->tag], d->path);
+		showdentry(fd, buf);
+		return;
 	}
 	t = (Content*)buf;
-	if(t->type < Maxtind)
-		fprint(fd, "%s %llud\n", tagnames[t->type], t->path);
-	else if(t->type == Tdata)
+	if(t->tag < Maxtind)
+		fprint(fd, "%s %llud\n", tagnames[t->tag], t->path);
+	if(t->tag == Tdata)
 		showdata(fd, buf);
-	else if(t->type >= Tind0 && t->type < Maxtind)
+	else if(t->tag >= Tind0 && t->tag < Maxtind)
 		showind(fd, buf);
-	else if(t->type != 0 || t->path != 0)
-		fprint(fd, "unknown tag type %d path %llud\n", t->type, t->path);
+	else if(t->tag != 0 || t->path != 0)
+		fprint(fd, "unknown tag type %d path %llud\n", t->tag, t->path);
 }
 
 u16
 blklen(u16 tag)
 {
-	return (tag == Tdentry ? Dentryunits : Rawblockunits);
+	return (tag == Tdentry || tag == Tblank) ? Dentryunits : Rawblockunits;
 }
--- a/block.c
+++ b/block.c
@@ -43,10 +43,8 @@
 
 	if(debug){
 		print("Dentry size %d\n", sizeof(Dentry));
-		print("Dentryhdr size %d Ddatasize %llud Tag size %d\n",
-				sizeof(Dentryhdr), Ddatasize, sizeof(Tag));
-		print("Dentryblocks size %d Namelen %d Tag size %d\n",
-				sizeof(Dentryblocks), Namelen, sizeof(Tag));
+		print("Dentryhdr size %d Ddatasize %llud Namelen %d\n",
+				sizeof(Dentryhdr), Ddatasize, Namelen);
 	}
 
 	nunits = size/Unit;
--- a/dat.h
+++ b/dat.h
@@ -10,12 +10,10 @@
 
 typedef	struct	Config	Config;
 typedef	struct	Content	Content;
-typedef	struct	Dentryblocks	Dentryblocks;
 typedef	struct	Dentryhdr	Dentryhdr;
 typedef	struct	Dentry	Dentry;
 typedef struct	Qid9p1	Qid9p1;
 typedef	struct	Super	Super;
-typedef	struct	Tag	Tag;
 typedef	struct	Tlock	Tlock;
 typedef	struct	User	User;
 typedef struct	Aux Aux;
@@ -45,6 +43,9 @@
  *
  * Trying to keep the Qpath the same as the directory entry block number
  * for the system files to help me identify numbers easily.
+ *
+ * derived constants
+ * Nindperblock number of block pointers in a block
  */
 enum {
 	Unit	= 512ULL,		/* minimum data unit size */
@@ -54,10 +55,14 @@
 	Dentrysize	= Dentryunits*Unit,		/* real block size of a Tdentry */
 	/* real block size of others. a multiple of Unit to keep the extents code uniform */
 	Rawblocksize= Rawblockunits*Unit,
+	Blocksize	= Rawblocksize - sizeof(u8 /* tag */) -sizeof(u64 /* path */),
+	Nindperblock= (Blocksize-7)/sizeof(u64),/* number of pointers per block. -7 for pad */
 
-	Namelen = 130,	/* maximum length of a file name, calculated manually */
+	Namelen = 129,	/* maximum length of a file name, calculated manually */
 	Ndblock	= 32,	/* number of direct blocks in a Dentry */
 	Niblock	= 3,	/* maximum depth of indirect blocks, can increase it to 6 without issues */
+	MAXRPC	= Blocksize,/* Tdata block size in bytes */
+	Iounit	= MAXRPC,	/* in bytes, TODO adjust for the 9p header size? */
 
 	/* global block numbers. The bkp contents locations are calculated by ream() */
 	Bdmagic	= 0,	/* block number of first block. Bmagic conflicts with bio.h */
@@ -109,26 +114,9 @@
 	Maxqpath = 72057594037927936ULL, /* 2^56 */
 
 	Nthdirty = 9,	/* dirty byte is the 9th byte in the Tag */
-
 };
 
-/*
- * DONT TOUCH -- data structures stored on disk
- */
 #pragma pack on
-struct Tag
-{
-	u8 type;	/* Tmagic, Tdentry, Tdata, Tindn */
-	u16 len;	/* number of Units */
-	u64 path;	/* Qid.path, unique identifier */
-};
-#pragma pack off
-
-enum {
-	Blocksize	= Rawblocksize - sizeof(Tag),
-};
-
-#pragma pack on
 /* DONT TOUCH, this is the disk structure */
 struct Qid9p1
 {
@@ -142,6 +130,11 @@
  */
 struct Dentryhdr
 {
+	u8 tag;
+	s8  name[Namelen]; /* 130, Namelen = 129 to align to a u64 after the ids*/
+	s16 uid;		/* 132 */
+	s16 gid;		/* 134 */
+	s16 muid;		/* 136 */
 	u64 size;		/* 0 for directories. For files, size in bytes of the content - 8 */
 	u64 pdblkno; 	/* block number of the parent directory entry. Will be 0 for root. - 16 */
 	u64 pqpath; 	/* parent qid.path - 24 */
@@ -148,24 +141,12 @@
 	u64 mtime;		/* modified time in nano seconds from epoch - 32 */
 	Qid9p1	qid;	/* 44 bytes */
 	u32 mode;		/* same bits as defined in /sys/include/libc.h:/Dir\.mode/ - 48 */
-	s16 uid;		/* 50 */
-	s16 gid;		/* 52 */
-	s16 muid;		/* 54 */
-	s8  name[Namelen]; /* 184, Namelen = 130 to align to a u64 */
 };
-struct Dentryblocks
-{
-	u64 dblocks[Ndblock];	/* direct blocks. */
-						/* List of Tdata block numbers for files and
-							Tdentry block numbers for directories */
-						/* Tag.type = Tdentry for directories and Tdata for files */
-	u64 iblocks[Niblock];	/* indirect blocks */
-};
 #pragma pack off
 
 enum {
 	/* max possible size of data that can be stuffed into a Dentry */
-	Ddatasize = Dentrysize -sizeof(Tag) -sizeof(Dentryhdr),
+	Ddatasize = Dentrysize -sizeof(u64 /* path */) -sizeof(Dentryhdr),
 };
 
 #pragma pack on
@@ -174,11 +155,17 @@
 	Dentryhdr;
 	union
 	{
-		struct Dentryblocks;
+		struct
+		{
+			u64 dblocks[Ndblock];	/* direct blocks. */
+									/* List of Tdata block numbers for files and
+										Tdentry block numbers for directories */
+			u64 iblocks[Niblock];	/* indirect blocks */
+		};
 		/* when size <= Dentrysize-184-sizeof(Tag), store the data here itself */
 		s8 buf[Ddatasize];
 	};
-	Tag;
+	u64 path;
 };
 /* DONT TOUCH, this is the disk structure */
 struct Super
@@ -187,30 +174,22 @@
 	u64 qidgen;	/* generator for unique ids. starts from 1024. */
 			/* make fsok a time stamp with the highest bit being the fsok flag */
 	u64 fsok;	/* fsck status, using 64 bits to keep it all aligned */
+	u64 path;
 };
-#pragma pack off
-
-/*
- * derived constants
- * Ndentriesperblock number of Dentry's in a block
- * Nindperblock number of block pointers in a block
- */
-enum {
-	MAXRPC	= Blocksize,/* Tdata block size in bytes */
-	Iounit	= MAXRPC,	/* in bytes, TODO adjust for the 9p header size? */
-	Nindperblock	= Blocksize/sizeof(u64),/* number of pointers per block */
-};
-
-#pragma pack on
 /* DONT TOUCH, this is the disk structure */
 struct Content	/* used to unmarshall the disk contents */
 {
+	u8 tag;
 	union
 	{
 		u8 buf[Blocksize];
-		u64 bufa[Nindperblock];
+		struct
+		{
+			u8 pad[7];	/* unused, to align to a multiple of 8 */
+			u64 bufa[Nindperblock];
+		};
 	};
-	Tag;
+	u64 path;	/* same as qid.path */
 };
 #pragma pack off
 
@@ -349,8 +328,7 @@
 	Tind1,		/* contains a list of Tind0 block numbers */
 	Tind2,		/* contains a list of Tind1 block numbers */
 				/* gap for more indirect block depth in future.
-					It can be put upto Tind5 without needing any code changes
-				 */
+					It can be put upto Tind5 without needing any code changes */
 	Maxtind,	/* should be Tind0+Niblock */
 	MAXTAG,
 
--- a/dentry.c
+++ b/dentry.c
@@ -295,7 +295,7 @@
 {
 	Dentry d, *child;
 	Iobuf *dbuf, *buf;
-	Tag ct;
+	u8 ct;
 	u64 cqpath;
 	u64 blkno, reli;
 	int i;
@@ -325,12 +325,11 @@
 		child = buf->d;
 		cqpath = child->qid.path;
 		mode = child->mode;
-		ct.type = buf->d->type;
-		ct.path = buf->d->path;
+		ct = buf->d->tag;
 		putbuf(buf);
 
 		/* nothing to do for already zero'ed out slots */
-		if(cqpath == Qpnone || ct.type == Tnone)
+		if(cqpath == Qpnone || ct == Tnone)
 			continue;
 
 		if(mode & DMDIR)
@@ -458,7 +457,7 @@
 		}
 
 		/* nothing to do for already zero'ed out slots */
-		if(ch->type == Tdentry && ch->path == Qpnone)
+		if(ch->tag == Tdentry && ch->path == Qpnone)
 			goto Nextdentry;
 
 		if(searchname != nil){
--- a/docs/mafs.ms
+++ b/docs/mafs.ms
@@ -119,10 +119,10 @@
 .sp
 M[a]fs organizes and saves content on a disk as directories and files, just like any other filesystem.
 .sp
-The unit of storage is a logical block (not physical sector) of data. Disk space is split into 512 byte logical blocks.
+The unit of storage is a logical block (not physical sector) of data. Disk space is split into 512 byte units. A directory entry block uses 1 unit (512 bytes) and a data block uses 16 units (8192 bytes).
 .sp
 .ne 14
-A sample disk of 2048 bytes with 4 blocks.
+A sample disk of 2048 bytes with 4 units.
 .PS
 right
 {
@@ -145,7 +145,7 @@
 	box height 4*boxht;
 	move 0.2i
 	"disk of" " 2048 bytes"
-	"Block  " at Block0.nw rjust
+	"Unit  " at Block0.nw rjust
 	"0  " at Block0.w rjust
 	"1  " at Block1.w rjust
 	"2  " at Block2.w rjust
@@ -153,19 +153,33 @@
 }
 .PE
 .sp
-A block is stored to the disk with a Tag.
+A block is stored to the disk with a tag in the first byte and the Qid.path in the last 8 bytes. The different types of blocks on a disk are:
 .br
 .nf
-struct Tag
+enum
 {
-	u8 type;	/* Tfree, Tmagic, Tdentry, Tdata, Tind\fIn\fR */
-	u64 path;	/* Qid.path, unique identifier of directory or file */
+	Tblank = 0,
+	Tfree  = 0,	/* free block */
+	Tnone  = 0,
+	Tdentry,		/* directory entry, size = Dentrysize */
+				/* Tdata & indirect blocks are last, to allow for greater depth */
+	Tdata,		/* actual file contents */
+	Tind0,		/* contains a list of Tdata block numbers for files
+					and Tdentry block numbers for directories.*/
+	Tind1,		/* contains a list of Tind0 block numbers */
+	Tind2,		/* contains a list of Tind1 block numbers */
+				/* gap for more indirect block depth in future.
+					It can be put upto Tind5 without needing any code changes */
+	Maxtind,		/* should be Tind0+Niblock */
+	MAXTAG,
+
+	Tmaxind = Maxtind - 1,
 };
 .fi
 .sp
-Every file or directory is represented on the disk by a directory entry (Dentry). A directory entry uses a block (Tag.type = Tdentry) and is uniquely identifiable by a Qid.
+Every file or directory is represented on the disk by a directory entry (Dentry). A directory entry uses a unit sized block (tag = Tdentry) and is uniquely identifiable by a Qid.
 .sp
-A file stores its contents in blocks with a Tag.type of Tdata. A directory holds the directory entries of it's children in blocks with a Tag.type of Tdentry.
+A file's contents are stored in the directory entry itself if they are 320 bytes or lesser. A file stores its contents in blocks with a tag of Tdata if the file size is more than that. A directory holds the directory entries of it's children in blocks each with a tag of Tdentry.
 .sp
 The blocks used by a file or directory entry are listed in their directory entry. As it is not possible to represent big files using the list of blocks available in the directory entry, the blocks are structured to use multiple levels of indirection as the file size increases.
 .sp
@@ -176,74 +190,64 @@
 M[a]fs does not store the last access time of a file or directory.
 .ne 20
 .sp
-.nf
-The different types of blocks on a disk are:
-.br
-.nf
-enum
-{
-	Tfree  = 0,	/* free block */
-	Tmagic,		/* the first (zero'th) block holds a magic word */
-	Tdentry,		/* directory entry */
-				/* Tind\fIn\fR are last, to allow for future increases */
-	Tdata,		/* actual file contents */
-	Tind0,		/* contains a list of Tdata block numbers for files
-					and Tdentry block numbers for directories.*/
-	Tind1,		/* contains a list of Tind0 block numbers */
-	Tind2,		/* contains a list of Tind1 block numbers */
-	Tind3,		/* contains a list of Tind2 block numbers */
-	Tind4,		/* contains a list of Tind3 block numbers */
-	Tind5,		/* contains a list of Tind4 block numbers, maximum file size 26 TiB */
-};
-.fi
-.sp
 A directory entry is defined as:
 .nf
 enum {
-	Rawblocksize = 512ULL,	/* real block size */
+	Unit	= 512ULL,		/* minimum data unit size */
+	Dentryunits	= 1,		/* number of units per Tdentry */
+	Rawblockunits= 16,		/* number of units for others */
+
+	Dentrysize	= Dentryunits*Unit,		/* real block size of a Tdentry */
+	/* real block size of others. a multiple of Unit to keep the extents code uniform */
+	Rawblocksize= Rawblockunits*Unit,
+	Blocksize	= Rawblocksize - sizeof(u8 /* tag */) -sizeof(u64 /* path */),
+	Nindperblock= (Blocksize-7)/sizeof(u64),/* number of pointers per block. -7 for pad */
+
+	Namelen = 129,	/* maximum length of a file name, calculated manually */
 	Ndblock	= 32,	/* number of direct blocks in a Dentry */
-	Niblock	= 6,		/* maximum depth of indirect blocks */
+	Niblock	= 3,	/* maximum depth of indirect blocks, can increase it to 6 without issues */
 };
 struct Qid9p1
 {
+	u64 path;	/* unique identifier */
 	u32 version;
-	u64 path;		/* unique identifier */
 };
-
-struct Dentry1
+struct Dentryhdr
 {
-	Qid9p1	qid;
-	u64 size;		/* 0 for directories. For files, size in bytes of the content */
-	u64 pdblkno; 	/* parent dentry absolute block number. 0 for root. */
-	u64 pqpath; 	/* parent qid.path */
-	u64 mtime;	/* modified time in nano seconds from epoch */
-	u32 mode;	/* same bits as defined in lib.h Dir.mode */
-	s16 uid;
-	s16 gid;
-	s16 muid;
-	u64 dblocks[Ndblock];	/* direct blocks. */
-						/* List of Tdata block numbers for files and
-							Tdentry block numbers for directories */
-						/* Tag.type = Tdentry for directories and Tdata for files */
-	u64 iblocks[Niblock];	/* indirect blocks */
+	u8 tag;
+	s8  name[Namelen]; /* 130, Namelen = 129 to align to a u64 after the ids*/
+	s16 uid;		/* 132 */
+	s16 gid;		/* 134 */
+	s16 muid;		/* 136 */
+	u64 size;		/* 0 for directories. For files, size in bytes of the content - 8 */
+	u64 pdblkno; 	/* block number of the parent directory entry. Will be 0 for root. - 16 */
+	u64 pqpath; 	/* parent qid.path - 24 */
+	u64 mtime;	/* modified time in nano seconds from epoch - 32 */
+	Qid9p1	qid;	/* 44 bytes */
+	u32 mode;	/* same bits as defined in /sys/include/libc.h:/Dir\.mode/ - 48 */
 };
 
-/*
- * Derived constants
- * Ndentryperblock: number of directory entries per block
- * Nindperblock: number of block pointers per block
- */
 enum {
-	Blocksize	= Rawblocksize - sizeof(Tag),
-	Namelen	= (Blocksize-sizeof(Dentry1)),	/* maximum size of the name of a file or directory */
-
-	Ndentryperblock	= 1, 				/* Blocksize / sizeof(Dentry), */
-	Nindperblock	= Blocksize / sizeof(u64),
+	/* max possible size of data that can be stuffed into a Dentry */
+	Ddatasize = Dentrysize -sizeof(u64 /* path */) -sizeof(Dentryhdr),
 };
+
 struct Dentry
 {
-	struct Dentry1;
-	char name[Namelen];
+	Dentryhdr;
+	union
+	{
+		struct
+		{
+			u64 dblocks[Ndblock];	/* direct blocks. */
+									/* List of Tdata block numbers for files and
+										Tdentry block numbers for directories */
+			u64 iblocks[Niblock];	/* indirect blocks */
+		};
+		/* when size <= Dentrysize-184-sizeof(Tag), store the data here itself */
+		s8 buf[Ddatasize];
+	};
+	u64 path;
 };
 .fi
 .sp
@@ -252,33 +256,24 @@
 A directory's size is always zero.
 .sp
 .nf
-	tests/6.sizes # shows the values of the above derived variables.
-	Namelen 145 Ndblock 32 Niblock 6
-	Blocksize 503 Nindperblock 62
-	A Tind0 unit points to 1 data blocks (503 bytes)
-			block points to 62 data blocks
-			reli start 32	max 93
-			max size 94*Blocksize = 47282 bytes
-	A Tind1 unit points to 62 data blocks (31186 bytes)
-			block points to 3844 data blocks
-			reli start 94	max 3937
-			max size 3938*Blocksize = 1980814 bytes	= 1 MiB
-	A Tind2 unit points to 3844 data blocks (1933532 bytes)
-			block points to 238328 data blocks
-			reli start 3938	max 242265
-			max size 242266*Blocksize = 121859798 bytes	= 116 MiB
-	A Tind3 unit points to 238328 data blocks (119878984 bytes)
-			block points to 14776336 data blocks
-			reli start 242266	max 15018601
-			max size 15018602*Blocksize = 7554356806 bytes	= 7 GiB
-	A Tind4 unit points to 14776336 data blocks (7432497008 bytes)
-			block points to 916132832 data blocks
-			reli start 15018602	max 931151433
-			max size 931151434*Blocksize = 468369171302 bytes	= 436 GiB
-	A Tind5 unit points to 916132832 data blocks (460814814496 bytes)
-			block points to 56800235584 data blocks
-			reli start 931151434	max 57731387017
-			max size 57731387018*Blocksize = 29038887670054 bytes	= 26 TiB
+	; tests/6.sizes
+	Unit 512 Dentrysize 512 Rawblocksize 8192
+	Dentryhdr size 184 Ddatasize 320
+	Dentry size 512 Namelen 129
+	Namelen 129 Ndblock 32 Niblock 3
+	Blocksize 8183 Nindperblock 1022
+	A Tind0 unit points to 1 data blocks (8183 bytes)
+			block points to 1022 data blocks
+			reli start 32	max 1053
+			max size 1054*Blocksize = 8624882 bytes	= 8 MiB
+	A Tind1 unit points to 1022 data blocks (8363026 bytes)
+			block points to 1044484 data blocks
+			reli start 1054	max 1045537
+			max size 1045538*Blocksize = 8555637454 bytes	= 7 GiB
+	A Tind2 unit points to 1044484 data blocks (8547012572 bytes)
+			block points to 1067462648 data blocks
+			reli start 1045538	max 1068508185
+			max size 1068508186*Blocksize = 8743602486038 bytes	= 7 TiB
 .fi
 .ne 30
 .sp
@@ -296,11 +291,12 @@
 	{ Bound: box height 10*bigboxht width 3.3*boxwid }
 	move 0.1i
 	box height fieldht invis "Tdentry 64"
+	box height fieldht invis "name dir1"
 	box height fieldht invis "qid.version 0"
 	box height fieldht invis "qid.path 64"
 	box height fieldht invis "size 0"
-	box height fieldht invis "pdblkno 19"
-	box height fieldht invis "pqpath 19"
+	box height fieldht invis "pdblkno 10"
+	box height fieldht invis "pqpath 10"
 	box height fieldht invis "mtime 1653302180819962729"
 	box height fieldht invis "mode 20000000777"
 	box height fieldht invis "uid 10006"
@@ -307,7 +303,7 @@
 	box height fieldht invis "gid -1"
 	box height fieldht invis "muid 10006"
 	box height fieldht invis "direct blocks"
-	box height fieldht invis "        0 21"
+	box height fieldht invis "        0 12"
 	box height fieldht invis "        1 0"
 	box height fieldht invis "        2 0"
 	box height fieldht invis "."
@@ -319,11 +315,7 @@
 	box height fieldht invis "        0 0"
 	box height fieldht invis "        1 0"
 	box height fieldht invis "        2 0"
-	box height fieldht invis "        3 0"
-	box height fieldht invis "        4 0"
-	box height fieldht invis "        5 0"
-	box height fieldht invis "name dir1"
-	"Block 20 contents: /dir1 Dentry" at Bound.nw + 0,0.1i ljust
+	"Block 11 contents: /dir1 Dentry" at Bound.nw + 0,0.1i ljust
 	"Representation of a file in a directory: /dir1/file1" ljust at Bound.n + 0,0.3i
 }
 move 4*boxwid
@@ -332,10 +324,11 @@
 	{ Bound: box height 10*bigboxht width 3.3*boxwid }
 	move 0.1i
 	box height fieldht invis "Tdentry 65"
+	box height fieldht invis "name file1"
 	box height fieldht invis "qid.version 0"
 	box height fieldht invis "qid.path 65"
 	box height fieldht invis "size 5"
-	box height fieldht invis "pdblkno 20"
+	box height fieldht invis "pdblkno "
 	box height fieldht invis "pqpath 64"
 	box height fieldht invis "mtime 1653302180823455071"
 	box height fieldht invis "mode 666"
@@ -342,33 +335,11 @@
 	box height fieldht invis "uid 10006"
 	box height fieldht invis "gid -1"
 	box height fieldht invis "muid 10006"
-	box height fieldht invis "direct blocks"
-	box height fieldht invis "        0 22"; {"content is in Block 22" at last box.e + 1i,0 ljust}
-	box height fieldht invis "        1 0"
-	box height fieldht invis "        2 0"
-	box height fieldht invis "."
-	box height fieldht invis "."
-	box height fieldht invis "."
-	box height fieldht invis "        30 0"
-	box height fieldht invis "        31 0"
-	box height fieldht invis "indirect blocks"
-	box height fieldht invis "        0 0"
-	box height fieldht invis "        1 0"
-	box height fieldht invis "        2 0"
-	box height fieldht invis "        3 0"
-	box height fieldht invis "        4 0"
-	box height fieldht invis "        5 0"
-	box height fieldht invis "name file1"
-	"Block 21 contents: file1 Dentry" at Bound.nw + 0,0.1i ljust
+	box height fieldht invis "test"
+	"Block 12 contents: file1 Dentry" at Bound.nw + 0,0.1i ljust
 }
 .PE
 .sp
-Contents of block 22 are:
-.nf
-	disk/block tests/test.9/disk 22
-	Tdata 65
-	test
-.fi
 .PS
 right
 Start: {
@@ -376,11 +347,12 @@
 	{ Bound: box height 8.5*bigboxht width 3.3*boxwid }
 	move 0.1i
 	box height fieldht invis "Tdentry 66"
+	box height fieldht invis "name dir2"
 	box height fieldht invis "qid.version 0"
 	box height fieldht invis "qid.path 66"
 	box height fieldht invis "size 0"
-	box height fieldht invis "pdblkno 19"
-	box height fieldht invis "pqpath 19"
+	box height fieldht invis "pdblkno 10"
+	box height fieldht invis "pqpath 10"
 	box height fieldht invis "mtime 1653302180819962729"
 	box height fieldht invis "mode 20000000777"
 	box height fieldht invis "uid 10006"
@@ -387,8 +359,8 @@
 	box height fieldht invis "gid -1"
 	box height fieldht invis "muid 10006"
 	box height fieldht invis "direct blocks"
-	box height fieldht invis "        0 24"
-	box height fieldht invis "        1 26"
+	box height fieldht invis "        0 14"
+	box height fieldht invis "        1 15"
 	box height fieldht invis "."
 	box height fieldht invis "."
 	box height fieldht invis "."
@@ -395,10 +367,9 @@
 	box height fieldht invis "        31 0"
 	box height fieldht invis "indirect blocks"
 	box height fieldht invis "        0 0"
-	box height fieldht invis "."
-	box height fieldht invis "        5 0"
-	box height fieldht invis "name dir2"
-	"Block 23 contents: /dir2 directory entry" at Bound.nw + 0,0.1i ljust
+	box height fieldht invis "        1 0"
+	box height fieldht invis "        2 0"
+	"Block 13 contents: /dir2 directory entry" at Bound.nw + 0,0.1i ljust
 	"Representation of two files in a directory (/dir2/file1 and /dir2/file2)" ljust at Bound.nw + 0.2,0.3i
 }
 move 4*boxwid
@@ -407,10 +378,11 @@
 	{ Bound: box height 8.5*bigboxht width 3.3*boxwid }
 	move 0.1i
 	box height fieldht invis "Tdentry 67"
+	box height fieldht invis "name file1"
 	box height fieldht invis "qid.version 0"
 	box height fieldht invis "qid.path 67"
 	box height fieldht invis "size 5"
-	box height fieldht invis "pdblkno 23"
+	box height fieldht invis "pdblkno 13"
 	box height fieldht invis "pqpath 66"
 	box height fieldht invis "mtime 1653302180823455071"
 	box height fieldht invis "mode 666"
@@ -417,19 +389,8 @@
 	box height fieldht invis "uid 10006"
 	box height fieldht invis "gid -1"
 	box height fieldht invis "muid 10006"
-	box height fieldht invis "direct blocks"
-	box height fieldht invis "        0 25"
-	box height fieldht invis "        1 0"
-	box height fieldht invis "."
-	box height fieldht invis "."
-	box height fieldht invis "."
-	box height fieldht invis "        31 0"
-	box height fieldht invis "indirect blocks"
-	box height fieldht invis "        0 0"
-	box height fieldht invis "."
-	box height fieldht invis "        5 0"
-	box height fieldht invis "name file1"
-	"Block 24 contents: file1 directory entry" at Bound.nw + 0,0.1i ljust
+	box height fieldht invis "test"
+	"Block 14 contents: file1 directory entry" at Bound.nw + 0,0.1i ljust
 }
 down
 move 9*bigboxht
@@ -438,10 +399,11 @@
 	{ Bound: box height 8.5*bigboxht width 3.3*boxwid }
 	move 0.1i
 	box height fieldht invis "Tdentry 68"
+	box height fieldht invis "name file2"
 	box height fieldht invis "qid.version 0"
 	box height fieldht invis "qid.path 68"
 	box height fieldht invis "size 5"
-	box height fieldht invis "pdblkno 23"
+	box height fieldht invis "pdblkno 13"
 	box height fieldht invis "pqpath 66"
 	box height fieldht invis "mtime 1653302180823455071"
 	box height fieldht invis "mode 666"
@@ -448,19 +410,8 @@
 	box height fieldht invis "uid 10006"
 	box height fieldht invis "gid -1"
 	box height fieldht invis "muid 10006"
-	box height fieldht invis "direct blocks"
-	box height fieldht invis "        0 27"
-	box height fieldht invis "        1 0"
-	box height fieldht invis "."
-	box height fieldht invis "."
-	box height fieldht invis "."
-	box height fieldht invis "        31 0"
-	box height fieldht invis "indirect blocks"
-	box height fieldht invis "        0 0"
-	box height fieldht invis "."
-	box height fieldht invis "        5 0"
-	box height fieldht invis "name file2"
-	"Block 26 contents: file2 directory entry" at Bound.nw + 0,0.1i ljust
+	box height fieldht invis "test"
+	"Block 15 contents: file2 directory entry" at Bound.nw + 0,0.1i ljust
 }
 .PE
 .sp
@@ -503,19 +454,6 @@
 	Tind0 reli 0 is at [0]
 .fi
 .sp
-This is how the last block of a 26 TiB file would be stored:
-.nf
-	tests/6.reli 57731387017
-	reli 57731387017
-	iblock[5]
-	Tind5 reli 56800235583 is at [61]
-	Tind4 reli 916132831 is at [61]
-	Tind3 reli 14776335 is at [61]
-	Tind2 reli 238327 is at [61]
-	Tind1 reli 3843 is at [61]
-	Tind0 reli 61 is at [61]
-.fi
-.sp
 .PS
 right
 Start: {
@@ -522,11 +460,12 @@
 	down
 	{ Bound: box height 8.5*bigboxht width 3.3*boxwid }
 	move 0.1i
-	box height fieldht invis "Tdentry 1 70"
+	box height fieldht invis "Tdentry 70"
+	box height fieldht invis "name 2MB.file"
 	box height fieldht invis "qid.version 0"
 	box height fieldht invis "qid.path 70"
 	box height fieldht invis "size 2056192"
-	box height fieldht invis "pdblkno 28"
+	box height fieldht invis "pdblkno 16"
 	box height fieldht invis "pqpath 69"
 	box height fieldht invis "mtime 1653302180819962729"
 	box height fieldht invis "mode 20000000777"
@@ -534,18 +473,16 @@
 	box height fieldht invis "gid -1"
 	box height fieldht invis "muid 10006"
 	box height fieldht invis "direct blocks"
-	box height fieldht invis "        0 30"
-	box height fieldht invis "        1 31"
-	box height fieldht invis "        2 32"
+	box height fieldht invis "        0 18"
+	box height fieldht invis "        1 34"
+	box height fieldht invis "        2 50"
 	box height fieldht invis "."
 	box height fieldht invis "."
 	box height fieldht invis "indirect blocks"
-	box height fieldht invis "       0 63"
-	box height fieldht invis "       1 128"
-	box height fieldht invis "       2 4045"
-	box height fieldht invis "       3 0"
-	box height fieldht invis "name 2MB.file"
-	"Block 29 contents" at Bound.nw + 0,0.1i ljust
+	box height fieldht invis "       0 546"
+	box height fieldht invis "       1 0"
+	box height fieldht invis "       2 0"
+	"Block 17 contents" at Bound.nw + 0,0.1i ljust
 	"Representation of a 2 MB file (/dir3/2MB.file)" ljust at Bound.n + 0,0.3i
 }
 move 4*boxwid
@@ -555,7 +492,7 @@
 	move 0.1i
 	box height fieldht invis "Tdata 70"
 	box height fieldht invis "0 0123456789"; {"contents of 2MB.file" at last box.e + 1i,0 ljust}
-	"Block 30 contents" at Bound.nw + 0,0.1i ljust
+	"Block 18 contents" at Bound.nw + 0,0.1i ljust
 }
 .PE
 .PS
@@ -565,10 +502,11 @@
 	{ Bound: box height 9*bigboxht width 3.3*boxwid }
 	move 0.1i
 	box height fieldht invis "Tdentry 72"
+	box height fieldht invis "name 25MB.file"
 	box height fieldht invis "qid.version 0"
 	box height fieldht invis "qid.path 72"
 	box height fieldht invis "size 26214400"
-	box height fieldht invis "pdblkno 4187"
+	box height fieldht invis "pdblkno 4066"
 	box height fieldht invis "pqpath 71"
 	box height fieldht invis "mtime 1653302180819962729"
 	box height fieldht invis "mode 664"
@@ -576,19 +514,17 @@
 	box height fieldht invis "gid -1"
 	box height fieldht invis "muid 10006"
 	box height fieldht invis "direct blocks"
-	box height fieldht invis "       0 4189"
-	box height fieldht invis "       1 4190"
-	box height fieldht invis "       2 4191"
+	box height fieldht invis "       0 4068"
+	box height fieldht invis "       1 4084"
+	box height fieldht invis "       2 4100"
 	box height fieldht invis "."
 	box height fieldht invis "."
-	box height fieldht invis "       31 4220"
+	box height fieldht invis "       31 4564"
 	box height fieldht invis "indirect blocks"
-	box height fieldht invis "       0 4222"
-	box height fieldht invis "       1 4285"
-	box height fieldht invis "       2 8204"
-	box height fieldht invis "       3 0"
-	box height fieldht invis "name 25MB.file"
-	"Block 4188 contents" at Bound.nw + 0,0.1i ljust
+	box height fieldht invis "       0 4596"
+	box height fieldht invis "       1 20964"
+	box height fieldht invis "       2 0"
+	"Block 4067 contents" at Bound.nw + 0,0.1i ljust
 	"Representation of a 25MB file (/dir4/25MB.file)" ljust at Bound.n + 0,0.3i
 }
 move 4*boxwid
@@ -601,7 +537,7 @@
 	box height fieldht invis "."; {"of 25MB.file" at last box.e + 1i,0 ljust}	
 	box height fieldht invis "."
 	box height fieldht invis "."
-	"Block 4189 contents" at Bound.nw + 0,0.1i ljust
+	"Block 4068 contents" at Bound.nw + 0,0.1i ljust
 }
 move to Start - 0,9.5*bigboxht
 {
@@ -609,13 +545,12 @@
 	{ Bound: box height 3*bigboxht width 3.3*boxwid }
 	move 0.1i
 	box height fieldht invis "Tind0 72"
-	box height fieldht invis "	0 4221"
-	box height fieldht invis "	1 4223"
-	box height fieldht invis "	2 4224"
+	box height fieldht invis "	0 4580"
+	box height fieldht invis "	1 4612"
+	box height fieldht invis "	2 4628"
 	box height fieldht invis "."
 	box height fieldht invis "."
-	box height fieldht invis "	61 4283"
-	"Block 4222 contents" at Bound.nw + 0,0.1i ljust
+	"Block 4596 contents" at Bound.nw + 0,0.1i ljust
 }
 right
 move 4*boxwid
@@ -624,45 +559,35 @@
 	{ Bound: box height 3*bigboxht width 3.3*boxwid }
 	move 0.1i
 	box height fieldht invis "Tdata 72"
-	box height fieldht invis "123456789"; {"more content" at last box.e + 1i,0 ljust}
+	box height fieldht invis "89"; {"more content" at last box.e + 1i,0 ljust}
 	box height fieldht invis "."; {"of 25MB.file" at last box.e + 1i,0 ljust}
 	box height fieldht invis "."
-	"Block 4221 contents" at Bound.nw + 0,0.1i ljust
+	"Block 4580 contents" at Bound.nw + 0,0.1i ljust
 }
 .PE
 .sp
 .TS
 box;
-c s s s
-c l c c
-l a a a .
+c s
+c l
+l a .
 System Files
 =
-Block	Description	Directory entry	Content
+Block	Description
 0	magic
-1	config		Y
-2	super		Y
+1	/adm/config
+2	/adm/super
 _
-3	/adm	Y
-4	/adm/config	Y
-5	/adm/super 	Y
+3	/adm
+4	/adm/users
+5	/adm/bkp/
 _
-6	/adm/bkp/ 	Y
-7	/adm/bkp/config.0 	Y
-8	/adm/bkp/super.0 	Y
-9	/adm/bkp/root.0 	Y
-10	/adm/bkp/config.1 	Y
-11	/adm/bkp/super.1 	Y
-12	/adm/bkp/root.1 	Y
+6	/adm/users/inuse
+7	/adm/frees
+8	/adm/ctl (virtual file, empty contents)
+9	/adm/users/staging
+10	/
 _
-13	/adm/users 	Y
-14	/adm/users/inuse	Y
-15	/adm/users/inuse		Y
-_
-16	/adm/frees 	Y
-17	/adm/ctl (virtual file, empty contents)	Y
-18	/adm/users/staging	Y
-19	/	Y
 .TE
 .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
 .sp
@@ -686,13 +611,13 @@
 		Backup Blocks
 Block	Description	1	2
 _
-1	config	last block number -1	middle block number -1
-2	super block (obsolete?)	last block number -2	middle block number -2
-3	/	last block number -3	middle block number -3
+1	/adm/config	last block number -1	middle block number -1
+2	/adm/super	last block number -2	middle block number -2
+10	/	last block number -3	middle block number -3
 .TE
 .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
 .sp
-M[a]fs needs atleast Nminblocks=17 blocks (8.5 KB). The middle block number is Nminblocks + ((nblocks - Nminblocks)/2), where nblocks = total number of blocks.
+M[a]fs needs atleast Nminblocks=16 blocks (8 KiB). The middle block number is Nminblocks + ((nblocks - Nminblocks)/2), where nblocks = total number of blocks.
 .fi
 .sp
 kfs and cwfs use 8192 byte blocks. Hence, they store multiple directory entries (Dentry) per block. They use slot numbers to identify a particular directory entry in a block of directory entries. M[a]fs avoids that be using 512 byte blocks thus having only one directory entry per block. This avoids locking up other sibling directory entries on access.
@@ -733,12 +658,17 @@
 };
 struct Content	/* used to unmarshall the disk contents */
 {
-	union{
+	u8 tag;
+	union
+	{
 		u8 buf[Blocksize];
-		u64 bufa[Nindperblock];
-		Dentry d;
+		struct
+		{
+			u8 pad[7];	/* unused, to align to a multiple of 8 */
+			u64 bufa[Nindperblock];
+		};
 	};
-	Tag;
+	u64 path;	/* same as qid.path */
 };
 struct Iobuf
 {
@@ -750,6 +680,7 @@
 	union{
 		u8	*xiobuf;	/* "real" buffer pointer */
 		Content *io;	/* cast'able to contents */
+		Dentry *d;
 	};
 	/*
 		This field is used by mafs to ensure that Iobufs are not reused
@@ -1539,44 +1470,41 @@
 	disk/mfs -r mfs_ramfs_file /n/ramfs/file
 	mount -c /srv/mfs_ramfs_file /n/mfs_ramfs_file
 	cat /dev/zero | tput -p > /n/mfs_ramfs_file/zeros.file
-		7.51 MB/s
-		7.24 MB/s
-		7.15 MB/s
-		7.11 MB/s
-		7.07 MB/s
-		7.06 MB/s
-		7.04 MB/s
-		7.03 MB/s
-		7.02 MB/s
-		7.01 MB/s
-		7.01 MB/s
-		7.00 MB/s
-		7.00 MB/s
-		6.99 MB/s
-		6.99 MB/s
-		6.98 MB/s
-		6.95 MB/s
-		6.86 MB/s
+		31.86 MB/s
+		31.53 MB/s
+		33.68 MB/s
+		34.98 MB/s
+		35.69 MB/s
+		36.13 MB/s
+		36.65 MB/s
+		37.17 MB/s
+		37.47 MB/s
+		36.58 MB/s
+		36.67 MB/s
+		36.93 MB/s
+		37.20 MB/s
+		37.55 MB/s
+		37.26 MB/s
+		36.91 MB/s
+		36.54 MB/s
+		36.25 MB/s
+		36.07 MB/s
 	echo halt >> /n/mfs_ramfs_file/adm/ctl; lc /srv
 	unmount /n/mfs_ramfs
 
 	disk/mafs -r mafs_ramfs_file /n/ramfs/file
 	mount -c /srv/mafs_ramfs_file /n/mafs_ramfs_file
-	cat /dev/zero | tput -p > /n/mafs_ramfs_file/zeros.file # throttles down to mfs speed
-		33.12 MB/s
-		33.17 MB/s
-		33.08 MB/s
-		32.34 MB/s
-		26.87 MB/s
-		23.22 MB/s
-		20.63 MB/s
-		18.67 MB/s
-		17.16 MB/s
-		15.94 MB/s
-		14.94 MB/s
-		14.11 MB/s
+	cat /dev/zero | tput -p > /n/mafs_ramfs_file/zeros.file # increase memunits for speed
+		57.94 MB/s
+		55.27 MB/s
+		46.67 MB/s
+		41.87 MB/s
+		39.00 MB/s
+		36.72 MB/s
+		35.18 MB/s
+		33.89 MB/s
+		32.81 MB/s
 	echo halt >> /n/mafs_ramfs_file/adm/ctl; lc /srv
-	unmount /n/ramfs
 
 	dd -if /dev/zero -of /n/ramfs/file -count 700 -bs 1m
 	hjfs -f /n/ramfs/file -r
@@ -1583,29 +1511,19 @@
 	echo allow >>/srv/hjfs.cmd
 	mount -c /srv/hjfs /n/hjfs/
 	cat /dev/zero | tput -p > /n/hjfs/zeros.file
-		65.18 MB/s
-		66.13 MB/s
-		65.97 MB/s
-		65.91 MB/s
-		65.81 MB/s
-		65.60 MB/s
-		65.38 MB/s
-		64.38 MB/s
-		63.36 MB/s
-		62.66 MB/s
-		62.09 MB/s
-		58.63 MB/s
-		54.77 MB/s
-		51.46 MB/s
-		48.60 MB/s
-		46.09 MB/s
-		43.88 MB/s
-		41.91 MB/s
-		40.15 MB/s
-		38.56 MB/s
-		37.13 MB/s
-		35.82 MB/s
+		70.85 MB/s
+		71.02 MB/s
+		70.88 MB/s
+		70.62 MB/s
+		70.46 MB/s
+		70.54 MB/s
+		69.74 MB/s
+		68.63 MB/s
+		67.74 MB/s
+		67.02 MB/s
+		63.81 MB/s
 	echo halt >>/srv/hjfs.cmd
+	unmount /n/ramfs
 .fi
 .sp
 .sp
--- a/extents.c
+++ b/extents.c
@@ -448,11 +448,12 @@
 {
 	Extent *e;
 	u64 start;
-	// char msg[64];
+	char msg[64];
 
 	if(es == nil)
 		panic("balloc: es == nil");
 	start = 0;
+	USED(start);
 	qlock(&es->lck);
 	if(es->n == 0)
 		rsleep(&es->isempty);
@@ -460,13 +461,14 @@
 		snprint(msg, 64, "balloc() %llud blocks:\n", n);
 		showextents(2, msg, es);
 	}*/
-
+again:
 	for(e = lowest(es); e != nil && e->len < n; e = e->high)
 		;
 	if(e == nil){
-		// snprint(msg, 64, "balloc() %llud blocks:\n", n);
-		// showextents(fd, msg, es);
-		panic("balloc: out of free blocks");
+		snprint(msg, 64, "balloc() %llud blocks: waiting\n", n);
+		showextents(2, msg, es);
+		rsleep(&es->isempty);
+		goto again;
 	}
 	else if(e->len == n)
 		start = pluck(es, e);
@@ -609,8 +611,8 @@
 void
 showextent(int fd, char *pre, Extent *e)
 {
-	fprint(fd, "%s	low %8#p	e %8#p %llud %llud	high %8#p",
-			pre, e->low, e, e->start, e->len, e->high);
+	fprint(fd, "%s	low %8#p	e %8#p %llud %p len %llud	high %8#p",
+			pre, e->low, e, e->start, e->start, e->len, e->high);
 }
 
 void
--- a/find.c
+++ b/find.c
@@ -21,7 +21,6 @@
 
 void walkdirectory(u64 blkno, s8 depth);
 void walkfile(u64 blkno, s8 depth);
-Tag *readtag(u64 blkno, u8 *buf);
 
 static void
 usage(void)
@@ -80,14 +79,14 @@
 }
 
 int
-checkvalid(u64 blkno, Tag *t, s16 tagtype, u64 qpath)
+checkvalid(u64 blkno, u8 dtag, u64 dpath, u8 tag, u64 qpath)
 {
 	int ret = 1;
 
-	if(t->type != tagtype || t->path != qpath){
+	if(dtag != tag || dpath != qpath){
 		/* if(debug) */
 			fprint(2, "checkvalid invalid %llud tag/path expected %s/%llud actual %s/%llud\n",
-					blkno, tagnames[tagtype], qpath, tagnames[t->type], t->path);
+					blkno, tagnames[tag], qpath, tagnames[dtag], dpath);
 		fprint(2, "used: %llud\n", blkno);
 		ret=0;
 	}/*else
@@ -100,7 +99,7 @@
 }
 
 void
-walkindir(u64 blkno, u16 tag, u16 bottomtag, u64 qpath, s8 depth)
+walkindir(u64 blkno, u8 tag, u8 bottomtag, u64 qpath, s8 depth)
 {
 	u8 buf[Rawblocksize], *cbuf;
 	Content *t, *ct;
@@ -109,8 +108,8 @@
 
 	devread(blkno, buf, Rawblockunits);
 	t = (Content*)buf;
-	if(checkvalid(blkno, t, tag, qpath)){
-		if(t->type == Tind0){
+	if(checkvalid(blkno, t->tag, t->path, tag, qpath)){
+		if(t->tag == Tind0){
 			bufa = (u64*)buf;
 			for(i = 0; i<Nindperblock; i++){
 				cblkno = bufa[i];
@@ -123,7 +122,7 @@
 					/* another directory */
 					walkdirectory(cblkno, depth);
 				else
-					checkvalid(cblkno, ct, bottomtag, qpath);
+					checkvalid(cblkno, ct->tag, ct->path, bottomtag, qpath);
 				free(cbuf);
 			}
 		}else{
@@ -178,11 +177,11 @@
 	print("%llud:%s\n", blkno, d->name);
 	if(debug)
 		print("walkdentry %llud tag %s name %s d->qid.path %llud\n",
-				blkno, tagnames[d->type], d->name, d->qid.path);
-	if(d->type != Tdentry || d->path != d->qid.path){
+				blkno, tagnames[d->tag], d->name, d->qid.path);
+	if(d->tag != Tdentry || d->path != d->qid.path){
 		if(debug)
 			print("walkdentry invalid %llud tag/path expected %s/%llud actual %s/%llud\n",
-					blkno, tagnames[Tdentry], d->qid.path, tagnames[d->type], d->path);
+					blkno, tagnames[Tdentry], d->qid.path, tagnames[d->tag], d->path);
 		fprint(2, "%llud\n", blkno);
 	}/*else
 		print("%llud\n", blkno);*/
@@ -207,7 +206,7 @@
 			return;
 		devread(cblkno, cbuf, Rawblockunits);
 		ct = (Content*)cbuf;
-		if(ct->type == Tind0+i){
+		if(ct->tag == Tind0+i){
 			walkindir(cblkno, Tind0+i, Tdentry, d->qid.path, depth);
 		}else{
 			fprint(2, "invalid indir tag %llud\n", cblkno);
@@ -233,11 +232,11 @@
 	print("%llud:%s\n", blkno, d->name);
 	if(debug)
 		print("walkfile %llud tag %s name %s d->qid.path %llud\n",
-				blkno, tagnames[d->type], d->name, d->qid.path);
-	if(d->type != Tdentry || d->path != d->qid.path){
+				blkno, tagnames[d->tag], d->name, d->qid.path);
+	if(d->tag != Tdentry || d->path != d->qid.path){
 		if(debug)
 			print("walkdentry invalid %llud tag/path expected %s/%llud actual %s/%llud\n",
-					blkno, tagnames[Tdentry], d->qid.path, tagnames[d->type], d->path);
+					blkno, tagnames[Tdentry], d->qid.path, tagnames[d->tag], d->path);
 		fprint(2, "%llud\n", blkno);
 	}/*else
 		print("%llud\n", blkno);*/
@@ -251,7 +250,7 @@
 		cbuf = malloc(Rawblocksize);
 		devread(cblkno, cbuf, Rawblockunits);
 		ct = (Content*)cbuf;
-		checkvalid(cblkno, ct, Tdata, d->qid.path);
+		checkvalid(cblkno, ct->tag, ct->path, Tdata, d->qid.path);
 		free(cbuf);
 	}
 	cbuf = malloc(Rawblocksize);
@@ -261,7 +260,7 @@
 			return;
 		devread(cblkno, cbuf, Rawblockunits);
 		ct = (Content*)cbuf;
-		if(ct->type == Tind0+i){
+		if(ct->tag == Tind0+i){
 			walkindir(cblkno, Tind0+i, Tdata, d->qid.path, depth);
 		}else{
 			fprint(2, "invalid indir tag %llud\n", cblkno);
--- a/free.c
+++ b/free.c
@@ -13,7 +13,7 @@
 int chatty9p = 0;
 char *devfile = nil;
 void walkdentry(u64 blkno);
-int checkdentry(u64 blkno, s16 tag, u64 qpath);
+int checkdentry(u64 blkno, u8 tag, u64 qpath);
 void getfrees(u64 dblkno);
 
 static void
@@ -59,12 +59,12 @@
 }
 
 int
-checkvalid(u64 blkno, Tag *t, s16 tag, u64 qpath)
+checkvalid(u64 blkno, u8 dtag, u64 dpath, u8 tag, u64 qpath)
 {
-	if(t->type != tag || t->path != qpath){
+	if(dtag != tag || dpath != qpath){
 		/* if(chatty9p) */
 			fprint(2, "check invalid %llud tag/path expected %s/%llud actual %s/%llud\n",
-					blkno, tagnames[tag], qpath, tagnames[t->type], t->path);
+					blkno, tagnames[tag], qpath, tagnames[dtag], dpath);
 		fprint(2, "free: %llud\n", blkno);
 		return 0;
 	}
@@ -74,7 +74,7 @@
 }
 
 int
-checkdentry(u64 blkno, s16 tag, u64 qpath)
+checkdentry(u64 blkno, u8 tag, u64 qpath)
 {
 	u8 buf[Dentrysize];
 	Dentry *t;
@@ -81,7 +81,7 @@
 
 	devread(blkno, buf, Dentryunits);
 	t = (Dentry*)buf;
-	return checkvalid(blkno, t, tag, qpath);
+	return checkvalid(blkno, t->tag, t->path, tag, qpath);
 }
 
 void
@@ -91,7 +91,7 @@
 
 	buf = emalloc(Rawblocksize);
 	devread(blkno, buf, Rawblockunits);
-	loadextents(&frees, buf, (Rawblocksize)-sizeof(Tag));
+	loadextents(&frees, buf, Blocksize);
 	free(buf);
 }
 
@@ -105,8 +105,8 @@
 
 	devread(blkno, buf, Rawblockunits);
 	t = (Content*)buf;
-	if(checkvalid(blkno, t, tag, qpath)){
-		if(t->type == Tind0){
+	if(checkvalid(blkno, t->tag, t->path, tag, qpath)){
+		if(t->tag == Tind0){
 			bufa = (u64*)buf;
 			for(i = 0; i<Nindperblock; i++){
 				cblkno = bufa[i];
@@ -146,7 +146,7 @@
 		loadextents(&frees, d->buf, d->size);
 		return;
 	}
-	if(checkvalid(dblkno, d, Tdentry, Qpfrees)){
+	if(checkvalid(dblkno, d->tag, d->path, Tdentry, Qpfrees)){
 		for(i = 0; i<Ndblock; i++){
 			cblkno = d->dblocks[i];
 			if(cblkno == 0)
--- a/iobuf.c
+++ b/iobuf.c
@@ -294,7 +294,8 @@
 	if(buf == nil){
 		panic("bkp: buf == nil\n");
 	}
-	memcpy(buf->d->buf, ((Dentry*)contents)->buf, ((Dentry*)contents)->size);
+	memcpy(buf->d->buf, contents, Ddatasize);
+	buf->d->mtime = nsec();
 //	if(qpath == Qproot0 || qpath == Qproot1){
 //		buf->d->mode &= ~DMDIR; /* to avoid recursive du -a */
 //	}
@@ -305,7 +306,7 @@
 putbuf(Iobuf *p)
 {
 	s8 i;
-	u8 buf[Blocksize];
+	u8 buf[Ddatasize];
 	u64 srcbno;
 
 	if(p == nil){
@@ -335,7 +336,7 @@
 		if(p->blkno == config.config.srcbno ||
 			p->blkno == config.super.srcbno ||
 			p->blkno == config.root.srcbno){
-			memcpy(buf, p->io->buf, Blocksize);
+			memcpy(buf, p->d->buf, Ddatasize);
 		}
 		if(synchronouswrites){
 			devwrite(p->blkno, p->xiobuf, p->len);
@@ -396,26 +397,23 @@
 }
 
 int
-checktag(Iobuf *p, u16 tag, u64 qpath)
+checktag(Iobuf *p, u8 tag, u64 qpath)
 {
 	uintptr pc;
 	u16 len;
-	u16 plen;
 	u16 ptag;
 	u64 pqpath;
 
 	if(tag == Tdentry){
-		ptag = p->d->type;
+		ptag = p->d->tag;
 		pqpath = p->d->path;
-		plen = p->d->len;
 	}else{
-		ptag = p->io->type;
+		ptag = p->io->tag;
 		pqpath = p->io->path;
-		plen = p->io->len;
 	}
 
 	len = blklen(tag);
-	if(len != plen ||
+	if(len != p->len ||
 		tag != ptag ||
 		(qpath != Qpnone && qpath != pqpath)){
 		pc = getcallerpc(&p);
@@ -443,22 +441,20 @@
 }
 
 void
-settag(Iobuf *p, int tagtype, u64 qpath)
+settag(Iobuf *p, u8 tag, u64 qpath)
 {
 	if(p->readers)
 		panic("settag %s(%llux) tag/path=%s/%llud: not Bwritable\n",
-				devfile, (u64)p->blkno, tagnames[tagtype], qpath);
+				devfile, (u64)p->blkno, tagnames[tag], qpath);
 	if(p->io == nil)
 		panic("settag %s(%llux) tag/path=%s/%llud: p->io == nil\n",
-				devfile, (u64)p->blkno, tagnames[tagtype], qpath);
-	if(tagtype == Tdentry){
-		p->d->type = Tdentry;
+				devfile, (u64)p->blkno, tagnames[tag], qpath);
+	if(tag == Tdentry){
+		p->d->tag = Tdentry;
 		p->d->path = qpath;
-		p->d->len = Dentryunits;
 	}else{
-		p->io->type = tagtype;
+		p->io->tag = tag;
 		p->io->path = qpath;
-		p->io->len = Rawblockunits;
 	}
 }
 
--- a/mafs.c
+++ b/mafs.c
@@ -88,9 +88,9 @@
 	if(nmemunits < KiB)
 		nmemunits = KiB;
 	if(npendingwrites == 0)
-		npendingwrites = (2*nmemunits)/3;
+		npendingwrites = nmemunits/(2*Rawblockunits);
 	if(nbuckets == 0)
-		nbuckets = nmemunits/(3*Ncollisions);
+		nbuckets = nmemunits/(4*Ncollisions*Rawblockunits);
 
 	if(chatty9p){
 		dprint("\nPlan 9 %d-bit file server with %d-deep indirect blocks\n",
--- a/mfs.c
+++ b/mfs.c
@@ -85,7 +85,7 @@
 	if(nmemunits < KiB)
 		nmemunits = KiB;
 	if(nbuckets == 0)
-		nbuckets = nmemunits/(3*Ncollisions);
+		nbuckets = nmemunits/(3*Ncollisions*Rawblockunits);
 
 	if(chatty9p){
 		dprint("\nPlan 9 %d-bit file server with %d-deep indirect blocks\n",
--- a/sub.c
+++ b/sub.c
@@ -15,7 +15,7 @@
 	if(sb == nil){
 		panic("newqpath: sb == nil\n");
 	}
-	s = (Super*)sb->io->buf;
+	s = (Super*)sb->d;
 	on = snprint(buf, Ddatasize-16, "%llud", s->qidgen);
 	qpath = s->qidgen++;
 	nn = snprint(buf, Ddatasize-16, "%llud", s->qidgen);
@@ -258,8 +258,8 @@
 	d->pqpath = Qproot;
 	d->dblocks[0] = Bdconfig;
 	d->dblocks[1] = Bdsuper;
-	d->dblocks[2] = Bdbkp;
-	d->dblocks[3] = Bdusers;
+	d->dblocks[2] = Bdusers;
+	d->dblocks[3] = Bdbkp;
 	d->dblocks[4] = Bdfrees;
 	d->dblocks[5] = Bdctl;
 	putbuf(b);
--- a/tag.c
+++ b/tag.c
@@ -38,6 +38,9 @@
 	return v;
 }
 
+/* cache the values instead of calculating each time */
+u64 nvals[Niblock] = {0};
+
 /* Each u64 address in this indirect block links to n Tdata/Tdentry blocks */
 u64
 nperindunit(u16 tag)
@@ -45,11 +48,13 @@
 	if(tag < Tind0 || tag > Tmaxind+1)
 		return 0;
 
-	return power(Nindperblock, tag-Tind0);
+	if(nvals[tag-Tind0] == 0)
+		nvals[tag-Tind0] = power(Nindperblock, tag-Tind0);
+	return nvals[tag-Tind0];
 }
 
 /*
- * compute BUFSIZE*(Ndblock+INDPERBUF+INDPERBUF²+INDPERBUF³+INDPERBUF⁴ .. upto ^Niblock)
+ * compute BLOCKSIZE*(Ndblock+INDPERBUF+INDPERBUF²+INDPERBUF³+INDPERBUF⁴ .. upto ^Niblock)
  * while watching for overflow; in that case, return 0.
  */
 /* extern double pow(double x, double y); *//* return x ^ y (exponentiation) */
--- a/tests/reli/15018600
+++ b/tests/reli/15018600
@@ -1,6 +1,5 @@
 reli 15018600
-iblock[3]
-Tind3 reli 14776334 is at [61]
-Tind2 reli 238326 is at [61]
-Tind1 reli 3842 is at [61]
-Tind0 reli 60 is at [60]
+iblock[2]
+Tind2 reli 13973062 is at [13]
+Tind1 reli 394770 is at [386]
+Tind0 reli 278 is at [278]
--- a/tests/reli/15018601
+++ b/tests/reli/15018601
@@ -1,6 +1,5 @@
 reli 15018601
-iblock[3]
-Tind3 reli 14776335 is at [61]
-Tind2 reli 238327 is at [61]
-Tind1 reli 3843 is at [61]
-Tind0 reli 61 is at [61]
+iblock[2]
+Tind2 reli 13973063 is at [13]
+Tind1 reli 394771 is at [386]
+Tind0 reli 279 is at [279]
--- a/tests/reli/15018602
+++ b/tests/reli/15018602
@@ -1,7 +1,5 @@
 reli 15018602
-iblock[4]
-Tind4 reli 0 is at [0]
-Tind3 reli 0 is at [0]
-Tind2 reli 0 is at [0]
-Tind1 reli 0 is at [0]
-Tind0 reli 0 is at [0]
+iblock[2]
+Tind2 reli 13973064 is at [13]
+Tind1 reli 394772 is at [386]
+Tind0 reli 280 is at [280]
--- a/tests/reli/242264
+++ b/tests/reli/242264
@@ -1,5 +1,4 @@
 reli 242264
-iblock[2]
-Tind2 reli 238326 is at [61]
-Tind1 reli 3842 is at [61]
-Tind0 reli 60 is at [60]
+iblock[1]
+Tind1 reli 241210 is at [236]
+Tind0 reli 18 is at [18]
--- a/tests/reli/242265
+++ b/tests/reli/242265
@@ -1,5 +1,4 @@
 reli 242265
-iblock[2]
-Tind2 reli 238327 is at [61]
-Tind1 reli 3843 is at [61]
-Tind0 reli 61 is at [61]
+iblock[1]
+Tind1 reli 241211 is at [236]
+Tind0 reli 19 is at [19]
--- a/tests/reli/242266
+++ b/tests/reli/242266
@@ -1,6 +1,4 @@
 reli 242266
-iblock[3]
-Tind3 reli 0 is at [0]
-Tind2 reli 0 is at [0]
-Tind1 reli 0 is at [0]
-Tind0 reli 0 is at [0]
+iblock[1]
+Tind1 reli 241212 is at [236]
+Tind0 reli 20 is at [20]
--- a/tests/reli/3100
+++ b/tests/reli/3100
@@ -1,4 +1,4 @@
 reli 3100
 iblock[1]
-Tind1 reli 3006 is at [48]
-Tind0 reli 30 is at [30]
+Tind1 reli 2046 is at [2]
+Tind0 reli 2 is at [2]
--- a/tests/reli/3936
+++ b/tests/reli/3936
@@ -1,4 +1,4 @@
 reli 3936
 iblock[1]
-Tind1 reli 3842 is at [61]
-Tind0 reli 60 is at [60]
+Tind1 reli 2882 is at [2]
+Tind0 reli 838 is at [838]
--- a/tests/reli/3937
+++ b/tests/reli/3937
@@ -1,4 +1,4 @@
 reli 3937
 iblock[1]
-Tind1 reli 3843 is at [61]
-Tind0 reli 61 is at [61]
+Tind1 reli 2883 is at [2]
+Tind0 reli 839 is at [839]
--- a/tests/reli/3938
+++ b/tests/reli/3938
@@ -1,5 +1,4 @@
 reli 3938
-iblock[2]
-Tind2 reli 0 is at [0]
-Tind1 reli 0 is at [0]
-Tind0 reli 0 is at [0]
+iblock[1]
+Tind1 reli 2884 is at [2]
+Tind0 reli 840 is at [840]
--- a/tests/reli/57731387017
+++ b/tests/reli/57731387017
@@ -1,8 +1,1 @@
 reli 57731387017
-iblock[5]
-Tind5 reli 56800235583 is at [61]
-Tind4 reli 916132831 is at [61]
-Tind3 reli 14776335 is at [61]
-Tind2 reli 238327 is at [61]
-Tind1 reli 3843 is at [61]
-Tind0 reli 61 is at [61]
--- a/tests/reli/931151433
+++ b/tests/reli/931151433
@@ -1,7 +1,5 @@
 reli 931151433
-iblock[4]
-Tind4 reli 916132831 is at [61]
-Tind3 reli 14776335 is at [61]
-Tind2 reli 238327 is at [61]
-Tind1 reli 3843 is at [61]
-Tind0 reli 61 is at [61]
+iblock[2]
+Tind2 reli 930105895 is at [890]
+Tind1 reli 515135 is at [504]
+Tind0 reli 47 is at [47]
--- a/tests/reli/931151434
+++ b/tests/reli/931151434
@@ -1,8 +1,5 @@
 reli 931151434
-iblock[5]
-Tind5 reli 0 is at [0]
-Tind4 reli 0 is at [0]
-Tind3 reli 0 is at [0]
-Tind2 reli 0 is at [0]
-Tind1 reli 0 is at [0]
-Tind0 reli 0 is at [0]
+iblock[2]
+Tind2 reli 930105896 is at [890]
+Tind1 reli 515136 is at [504]
+Tind0 reli 48 is at [48]
--- a/tests/reli/94
+++ b/tests/reli/94
@@ -1,4 +1,3 @@
 reli 94
-iblock[1]
-Tind1 reli 0 is at [0]
-Tind0 reli 0 is at [0]
+iblock[0]
+Tind0 reli 62 is at [62]
--- a/tests/sizes.c
+++ b/tests/sizes.c
@@ -11,10 +11,10 @@
 
 	print("Unit %llud Dentrysize %llud Rawblocksize %llud\n",
 			Unit, Dentrysize, Rawblocksize);
-	print("Dentryhdr size %d Ddatasize %llud Tag size %d\n",
-			sizeof(Dentryhdr), Ddatasize, sizeof(Tag));
-	print("Dentryblocks size %d Namelen %d Tag size %d\n",
-			sizeof(Dentryblocks), Namelen, sizeof(Tag));
+	print("Dentryhdr size %d Ddatasize %llud\n",
+			sizeof(Dentryhdr), Ddatasize);
+	print("Dentry size %d Namelen %d\n",
+			sizeof(Dentry), Namelen);
 	print("Namelen %d Ndblock %d Niblock %d\n", Namelen, Ndblock, Niblock);
 	print("Blocksize %llud Nindperblock %llud\n",
 			Blocksize, Nindperblock);
--- a/tests/test.0/blocks/0
+++ b/tests/test.0/blocks/0
@@ -1,13 +1,14 @@
+Tdentry 11
 name magic
+uid -1
+gid -1
+muid -1
 size 18
 pdblkno 3
 pqpath 3
-mtime 1668539885153438699
+mtime 1668649861940433308
 qid.path 11
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 m[a]fs device
 512
--- a/tests/test.0/blocks/1
+++ b/tests/test.0/blocks/1
@@ -1,14 +1,15 @@
+Tdentry 1
 name config
+uid -1
+gid -1
+muid -1
 size 110
 pdblkno 3
 pqpath 3
-mtime 1668539885153467273
+mtime 1668649861940458635
 qid.path 1
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 size 16384
 nblocks 32
 backup config 1 to 31 20
--- a/tests/test.0/blocks/10
+++ b/tests/test.0/blocks/10
@@ -1,14 +1,15 @@
+Tdentry 10
 name /
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 0
 pqpath 0
-mtime 1668539885153465148
+mtime 1668649861940456464
 qid.path 10
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 3
 	1 0
--- a/tests/test.0/blocks/11
+++ b/tests/test.0/blocks/11
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/12
+++ b/tests/test.0/blocks/12
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/13
+++ b/tests/test.0/blocks/13
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/14
+++ b/tests/test.0/blocks/14
@@ -1,1 +1,1 @@
-Tdentry 14
+Tblank
--- a/tests/test.0/blocks/15
+++ b/tests/test.0/blocks/15
@@ -1,1 +1,1 @@
-Tdentry 13
+Tblank
--- a/tests/test.0/blocks/16
+++ b/tests/test.0/blocks/16
@@ -1,1 +1,1 @@
-Tdentry 12
+Tblank
--- a/tests/test.0/blocks/17
+++ b/tests/test.0/blocks/17
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/18
+++ b/tests/test.0/blocks/18
@@ -1,14 +1,15 @@
+Tdentry 17
 name root.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668539885153398050
+mtime 1668649861940398669
 qid.path 17
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 18
 	1 0
--- a/tests/test.0/blocks/19
+++ b/tests/test.0/blocks/19
@@ -1,13 +1,14 @@
+Tdentry 16
 name super.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668539885153395797
+mtime 1668649863062398070
 qid.path 16
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 qidgen 64
 fsok 1
--- a/tests/test.0/blocks/2
+++ b/tests/test.0/blocks/2
@@ -1,13 +1,14 @@
+Tdentry 2
 name super
+uid -1
+gid -1
+muid -1
 size 18
 pdblkno 3
 pqpath 3
-mtime 1668539885153362490
+mtime 1668649861940361606
 qid.path 2
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 qidgen 64
 fsok 1
--- a/tests/test.0/blocks/20
+++ b/tests/test.0/blocks/20
@@ -1,14 +1,15 @@
+Tdentry 15
 name config.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668539885153393655
+mtime 1668649861940490547
 qid.path 15
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 size 16384
 nblocks 32
 backup config 1 to 31 20
--- a/tests/test.0/blocks/21
+++ b/tests/test.0/blocks/21
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/22
+++ b/tests/test.0/blocks/22
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/23
+++ b/tests/test.0/blocks/23
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/24
+++ b/tests/test.0/blocks/24
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/25
+++ b/tests/test.0/blocks/25
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/26
+++ b/tests/test.0/blocks/26
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/27
+++ b/tests/test.0/blocks/27
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/28
+++ b/tests/test.0/blocks/28
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.0/blocks/29
+++ b/tests/test.0/blocks/29
@@ -1,14 +1,15 @@
+Tdentry 14
 name root.0
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668539885153388202
+mtime 1668649861940388481
 qid.path 14
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 29
 	1 0
--- a/tests/test.0/blocks/3
+++ b/tests/test.0/blocks/3
@@ -1,19 +1,20 @@
+Tdentry 3
 name adm
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 10
 pqpath 10
-mtime 1668539885153455702
+mtime 1668649861940444843
 qid.path 3
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 1
 	1 2
-	2 5
-	3 4
+	2 4
+	3 5
 	4 7
 	5 8
 	6 0
--- a/tests/test.0/blocks/30
+++ b/tests/test.0/blocks/30
@@ -1,13 +1,14 @@
+Tdentry 13
 name super.0
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668539885153378887
+mtime 1668649863062393254
 qid.path 13
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 qidgen 64
 fsok 1
--- a/tests/test.0/blocks/31
+++ b/tests/test.0/blocks/31
@@ -1,14 +1,15 @@
+Tdentry 12
 name config.0
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668539885153366728
+mtime 1668649861940488754
 qid.path 12
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 size 16384
 nblocks 32
 backup config 1 to 31 20
--- a/tests/test.0/blocks/4
+++ b/tests/test.0/blocks/4
@@ -1,14 +1,15 @@
+Tdentry 4
 name users
+uid -1
+gid -1
+muid -1
 size 96
 pdblkno 3
 pqpath 3
-mtime 1668539885153460519
+mtime 1668649861940451606
 qid.path 4
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 6
 	1 9
--- a/tests/test.0/blocks/5
+++ b/tests/test.0/blocks/5
@@ -1,14 +1,15 @@
+Tdentry 5
 name bkp
+uid -1
+gid -1
+muid -1
 size 96
 pdblkno 3
 pqpath 3
-mtime 1668539885153458041
+mtime 1668649861940447075
 qid.path 5
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 31
 	1 30
--- a/tests/test.0/blocks/6
+++ b/tests/test.0/blocks/6
@@ -1,14 +1,15 @@
+Tdentry 6
 name inuse
+uid -1
+gid -1
+muid -1
 size 95
 pdblkno 4
 pqpath 4
-mtime 1668539885153462861
+mtime 1668649861940454056
 qid.path 6
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 -1:adm:adm:glenda
 0:none:adm:
 9999:noworld::
--- a/tests/test.0/blocks/7
+++ b/tests/test.0/blocks/7
@@ -1,13 +1,14 @@
+Tdentry 7
 name frees
+uid -1
+gid -1
+muid -1
 size 17
 pdblkno 3
 pqpath 3
-mtime 1668539887275618276
+mtime 1668649864062422719
 qid.path 7
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 11 17 7
 21 28 8
--- a/tests/test.0/blocks/8
+++ b/tests/test.0/blocks/8
@@ -1,11 +1,12 @@
+Tdentry 8
 name ctl
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 3
 pqpath 3
-mtime 1668539885153472052
+mtime 1668649861940463324
 qid.path 8
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
--- a/tests/test.0/blocks/9
+++ b/tests/test.0/blocks/9
@@ -1,11 +1,12 @@
+Tdentry 9
 name staging
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 4
 pqpath 4
-mtime 1668539885153483592
+mtime 1668649861940473536
 qid.path 9
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
--- a/tests/test.1/blocks/0
+++ b/tests/test.1/blocks/0
@@ -1,13 +1,14 @@
+Tdentry 11
 name magic
+uid -1
+gid -1
+muid -1
 size 18
 pdblkno 3
 pqpath 3
-mtime 1668540127356872451
+mtime 1668649877218596212
 qid.path 11
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 m[a]fs device
 512
--- a/tests/test.1/blocks/1
+++ b/tests/test.1/blocks/1
@@ -1,14 +1,15 @@
+Tdentry 1
 name config
+uid -1
+gid -1
+muid -1
 size 110
 pdblkno 3
 pqpath 3
-mtime 1668540127356901604
+mtime 1668649877218621464
 qid.path 1
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 size 16384
 nblocks 32
 backup config 1 to 31 20
--- a/tests/test.1/blocks/10
+++ b/tests/test.1/blocks/10
@@ -1,14 +1,15 @@
+Tdentry 10
 name /
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 0
 pqpath 0
-mtime 1668540127356899518
+mtime 1668649877218619227
 qid.path 10
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 3
 	1 11
--- a/tests/test.1/blocks/11
+++ b/tests/test.1/blocks/11
@@ -1,14 +1,15 @@
+Tdentry 64
 name dir1
+uid 10006
+gid -1
+muid 10006
 size 0
 pdblkno 10
 pqpath 10
-mtime 1668540128490501997
+mtime 1668649878352919167
 qid.path 64
 qid.version 0
 mode 20000000777
-uid 10006
-gid -1
-muid 10006
 direct blocks
 	0 12
 	1 0
--- a/tests/test.1/blocks/12
+++ b/tests/test.1/blocks/12
@@ -1,12 +1,13 @@
+Tdentry 65
 name file1
+uid 10006
+gid -1
+muid 10006
 size 5
 pdblkno 11
 pqpath 64
-mtime 1668540128492461592
+mtime 1668649878356612046
 qid.path 65
 qid.version 0
 mode 666
-uid 10006
-gid -1
-muid 10006
 test
--- a/tests/test.1/blocks/13
+++ b/tests/test.1/blocks/13
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/14
+++ b/tests/test.1/blocks/14
@@ -1,1 +1,1 @@
-Tdentry 14
+Tblank
--- a/tests/test.1/blocks/15
+++ b/tests/test.1/blocks/15
@@ -1,1 +1,1 @@
-Tdentry 13
+Tblank
--- a/tests/test.1/blocks/16
+++ b/tests/test.1/blocks/16
@@ -1,1 +1,1 @@
-Tdentry 12
+Tblank
--- a/tests/test.1/blocks/17
+++ b/tests/test.1/blocks/17
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/18
+++ b/tests/test.1/blocks/18
@@ -1,17 +1,18 @@
+Tdentry 17
 name root.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668540127356833806
+mtime 1668649878352945292
 qid.path 17
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 direct blocks
-	0 18
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
--- a/tests/test.1/blocks/19
+++ b/tests/test.1/blocks/19
@@ -1,13 +1,14 @@
+Tdentry 16
 name super.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668540127356831723
+mtime 1668649878365673609
 qid.path 16
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 qidgen 66
 fsok 1
--- a/tests/test.1/blocks/2
+++ b/tests/test.1/blocks/2
@@ -1,13 +1,14 @@
+Tdentry 2
 name super
+uid -1
+gid -1
+muid -1
 size 18
 pdblkno 3
 pqpath 3
-mtime 1668540127356777579
+mtime 1668649877218521323
 qid.path 2
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 qidgen 66
 fsok 1
--- a/tests/test.1/blocks/20
+++ b/tests/test.1/blocks/20
@@ -1,14 +1,15 @@
+Tdentry 15
 name config.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668540127356829437
+mtime 1668649877218653532
 qid.path 15
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 size 16384
 nblocks 32
 backup config 1 to 31 20
--- a/tests/test.1/blocks/21
+++ b/tests/test.1/blocks/21
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/22
+++ b/tests/test.1/blocks/22
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/23
+++ b/tests/test.1/blocks/23
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/24
+++ b/tests/test.1/blocks/24
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/25
+++ b/tests/test.1/blocks/25
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/26
+++ b/tests/test.1/blocks/26
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/27
+++ b/tests/test.1/blocks/27
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/28
+++ b/tests/test.1/blocks/28
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.1/blocks/29
+++ b/tests/test.1/blocks/29
@@ -1,17 +1,18 @@
+Tdentry 14
 name root.0
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668540127356820790
+mtime 1668649878352943542
 qid.path 14
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 direct blocks
-	0 29
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
--- a/tests/test.1/blocks/3
+++ b/tests/test.1/blocks/3
@@ -1,19 +1,20 @@
+Tdentry 3
 name adm
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 10
 pqpath 10
-mtime 1668540127356889912
+mtime 1668649877218607599
 qid.path 3
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 1
 	1 2
-	2 5
-	3 4
+	2 4
+	3 5
 	4 7
 	5 8
 	6 0
--- a/tests/test.1/blocks/30
+++ b/tests/test.1/blocks/30
@@ -1,13 +1,14 @@
+Tdentry 13
 name super.0
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668540127356799904
+mtime 1668649878365670865
 qid.path 13
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 qidgen 66
 fsok 1
--- a/tests/test.1/blocks/31
+++ b/tests/test.1/blocks/31
@@ -1,14 +1,15 @@
+Tdentry 12
 name config.0
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668540127356789088
+mtime 1668649877218651836
 qid.path 12
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 size 16384
 nblocks 32
 backup config 1 to 31 20
--- a/tests/test.1/blocks/4
+++ b/tests/test.1/blocks/4
@@ -1,14 +1,15 @@
+Tdentry 4
 name users
+uid -1
+gid -1
+muid -1
 size 96
 pdblkno 3
 pqpath 3
-mtime 1668540127356894780
+mtime 1668649877218614248
 qid.path 4
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 6
 	1 9
--- a/tests/test.1/blocks/5
+++ b/tests/test.1/blocks/5
@@ -1,14 +1,15 @@
+Tdentry 5
 name bkp
+uid -1
+gid -1
+muid -1
 size 96
 pdblkno 3
 pqpath 3
-mtime 1668540127356892267
+mtime 1668649877218609834
 qid.path 5
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 31
 	1 30
--- a/tests/test.1/blocks/6
+++ b/tests/test.1/blocks/6
@@ -1,14 +1,15 @@
+Tdentry 6
 name inuse
+uid -1
+gid -1
+muid -1
 size 95
 pdblkno 4
 pqpath 4
-mtime 1668540127356897130
+mtime 1668649877218616761
 qid.path 6
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 -1:adm:adm:glenda
 0:none:adm:
 9999:noworld::
--- a/tests/test.1/blocks/7
+++ b/tests/test.1/blocks/7
@@ -1,13 +1,14 @@
+Tdentry 7
 name frees
+uid -1
+gid -1
+muid -1
 size 17
 pdblkno 3
 pqpath 3
-mtime 1668540129495975093
+mtime 1668649879365706377
 qid.path 7
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 13 17 5
 21 28 8
--- a/tests/test.1/blocks/8
+++ b/tests/test.1/blocks/8
@@ -1,11 +1,12 @@
+Tdentry 8
 name ctl
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 3
 pqpath 3
-mtime 1668540127356906100
+mtime 1668649877218625957
 qid.path 8
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
--- a/tests/test.1/blocks/9
+++ b/tests/test.1/blocks/9
@@ -1,11 +1,12 @@
+Tdentry 9
 name staging
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 4
 pqpath 4
-mtime 1668540127356916679
+mtime 1668649877218636354
 qid.path 9
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
--- a/tests/test.2/blocks/0
+++ b/tests/test.2/blocks/0
@@ -1,13 +1,14 @@
+Tdentry 11
 name magic
+uid -1
+gid -1
+muid -1
 size 18
 pdblkno 3
 pqpath 3
-mtime 1668545342185811391
+mtime 1668649892762284337
 qid.path 11
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 m[a]fs device
 512
--- a/tests/test.2/blocks/1
+++ b/tests/test.2/blocks/1
@@ -1,14 +1,15 @@
+Tdentry 1
 name config
+uid -1
+gid -1
+muid -1
 size 110
 pdblkno 3
 pqpath 3
-mtime 1668545342185839743
+mtime 1668649892762309529
 qid.path 1
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 size 24576
 nblocks 48
 backup config 1 to 47 28
--- a/tests/test.2/blocks/10
+++ b/tests/test.2/blocks/10
@@ -1,14 +1,15 @@
+Tdentry 10
 name /
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 0
 pqpath 0
-mtime 1668545342185837664
+mtime 1668649892762307319
 qid.path 10
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 3
 	1 11
--- a/tests/test.2/blocks/11
+++ b/tests/test.2/blocks/11
@@ -1,4 +1,8 @@
+Tdentry 0
 name 
+uid 0
+gid 0
+muid 0
 size 0
 pdblkno 0
 pqpath 0
@@ -6,6 +10,3 @@
 qid.path 0
 qid.version 0
 mode 0
-uid 0
-gid 0
-muid 0
--- a/tests/test.2/blocks/12
+++ b/tests/test.2/blocks/12
@@ -1,1 +1,1 @@
-Tdentry 16
+Tblank
--- a/tests/test.2/blocks/13
+++ b/tests/test.2/blocks/13
@@ -1,1 +1,1 @@
-Tdentry 15
+Tblank
--- a/tests/test.2/blocks/14
+++ b/tests/test.2/blocks/14
@@ -1,1 +1,1 @@
-unknown tag type 54 path 2617
+Tblank
--- a/tests/test.2/blocks/15
+++ b/tests/test.2/blocks/15
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/16
+++ b/tests/test.2/blocks/16
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/17
+++ b/tests/test.2/blocks/17
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/18
+++ b/tests/test.2/blocks/18
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/19
+++ b/tests/test.2/blocks/19
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/2
+++ b/tests/test.2/blocks/2
@@ -1,13 +1,14 @@
+Tdentry 2
 name super
+uid -1
+gid -1
+muid -1
 size 18
 pdblkno 3
 pqpath 3
-mtime 1668545342185727298
+mtime 1668649892762200162
 qid.path 2
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 qidgen 72
 fsok 1
--- a/tests/test.2/blocks/23
+++ b/tests/test.2/blocks/23
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/24
+++ b/tests/test.2/blocks/24
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/25
+++ b/tests/test.2/blocks/25
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/26
+++ b/tests/test.2/blocks/26
@@ -1,17 +1,18 @@
+Tdentry 17
 name root.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668545342185769551
+mtime 1668649894015488239
 qid.path 17
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 direct blocks
-	0 26
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
--- a/tests/test.2/blocks/27
+++ b/tests/test.2/blocks/27
@@ -1,13 +1,14 @@
+Tdentry 16
 name super.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668545342185767247
+mtime 1668649894032404496
 qid.path 16
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 qidgen 72
 fsok 1
--- a/tests/test.2/blocks/28
+++ b/tests/test.2/blocks/28
@@ -1,14 +1,15 @@
+Tdentry 15
 name config.1
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 5
 pqpath 5
-mtime 1668545342185764644
+mtime 1668649892762342531
 qid.path 15
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 size 24576
 nblocks 48
 backup config 1 to 47 28
--- a/tests/test.2/blocks/29
+++ b/tests/test.2/blocks/29
@@ -1,1 +1,47 @@
 Tdata 71
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
+0123456789
--- a/tests/test.2/blocks/3
+++ b/tests/test.2/blocks/3
@@ -1,19 +1,20 @@
+Tdentry 3
 name adm
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 10
 pqpath 10
-mtime 1668545342185828484
+mtime 1668649892762295909
 qid.path 3
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 1
 	1 2
-	2 5
-	3 4
+	2 4
+	3 5
 	4 7
 	5 8
 	6 0
--- a/tests/test.2/blocks/30
+++ b/tests/test.2/blocks/30
@@ -1,1 +1,1 @@
-Tdentry 14
+Tblank
--- a/tests/test.2/blocks/31
+++ b/tests/test.2/blocks/31
@@ -1,1 +1,1 @@
-Tdentry 13
+Tblank
--- a/tests/test.2/blocks/32
+++ b/tests/test.2/blocks/32
@@ -1,1 +1,1 @@
-Tdentry 12
+Tblank
--- a/tests/test.2/blocks/33
+++ b/tests/test.2/blocks/33
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/34
+++ b/tests/test.2/blocks/34
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/35
+++ b/tests/test.2/blocks/35
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/36
+++ b/tests/test.2/blocks/36
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/37
+++ b/tests/test.2/blocks/37
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/38
+++ b/tests/test.2/blocks/38
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/39
+++ b/tests/test.2/blocks/39
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.2/blocks/4
+++ b/tests/test.2/blocks/4
@@ -1,14 +1,15 @@
+Tdentry 4
 name users
+uid -1
+gid -1
+muid -1
 size 96
 pdblkno 3
 pqpath 3
-mtime 1668545342185833203
+mtime 1668649892762302350
 qid.path 4
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 6
 	1 9
--- a/tests/test.2/blocks/5
+++ b/tests/test.2/blocks/5
@@ -1,14 +1,15 @@
+Tdentry 5
 name bkp
+uid -1
+gid -1
+muid -1
 size 96
 pdblkno 3
 pqpath 3
-mtime 1668545342185830807
+mtime 1668649892762298050
 qid.path 5
 qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 47
 	1 46
--- a/tests/test.2/blocks/6
+++ b/tests/test.2/blocks/6
@@ -1,14 +1,15 @@
+Tdentry 6
 name inuse
+uid -1
+gid -1
+muid -1
 size 95
 pdblkno 4
 pqpath 4
-mtime 1668545342185835427
+mtime 1668649892762304851
 qid.path 6
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 -1:adm:adm:glenda
 0:none:adm:
 9999:noworld::
--- a/tests/test.2/blocks/7
+++ b/tests/test.2/blocks/7
@@ -1,13 +1,14 @@
+Tdentry 7
 name frees
+uid -1
+gid -1
+muid -1
 size 19
 pdblkno 3
 pqpath 3
-mtime 1668545344439983629
+mtime 1668649895032420148
 qid.path 7
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
 12 25 14
 29 44 16
--- a/tests/test.2/blocks/8
+++ b/tests/test.2/blocks/8
@@ -1,11 +1,12 @@
+Tdentry 8
 name ctl
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 3
 pqpath 3
-mtime 1668545342185844480
+mtime 1668649892762313999
 qid.path 8
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
--- a/tests/test.2/blocks/9
+++ b/tests/test.2/blocks/9
@@ -1,11 +1,12 @@
+Tdentry 9
 name staging
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 4
 pqpath 4
-mtime 1668545342185855739
+mtime 1668649892762325549
 qid.path 9
 qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
--- a/tests/test.3/blocks/0
+++ b/tests/test.3/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668650134871793059
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.3/blocks/1
+++ b/tests/test.3/blocks/1
@@ -1,7 +1,18 @@
-Tdata 4
+Tdentry 1
+name config
+uid -1
+gid -1
+muid -1
+size 134
+pdblkno 3
+pqpath 3
+mtime 1668650134871818250
+qid.path 1
+qid.version 0
+mode 444
 size 20971520
 nblocks 40960
-backup config 1 to 40959 20489
-backup super 2 to 40958 20488
-backup root 19 to 40957 20487
+backup config 1 to 40959 20484
+backup super 2 to 40958 20483
+backup root 10 to 40957 20482
 service test.3
--- a/tests/test.3/blocks/10
+++ b/tests/test.3/blocks/10
@@ -1,17 +1,18 @@
 Tdentry 10
-qid.version 0
-qid.path 10
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668268616172897640
-mode 444
+name /
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 0
+pqpath 0
+mtime 1668650134871816036
+qid.path 10
+qid.version 0
+mode 20000000777
 direct blocks
-	0 20489
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config.1
--- a/tests/test.3/blocks/2
+++ b/tests/test.3/blocks/2
@@ -1,6 +1,14 @@
-Tdata 5
-start 0
-tfree 0
+Tdentry 2
+name super
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668650134871711955
+qid.path 2
+qid.version 0
+mode 444
 qidgen 74
-frees 0
 fsok 1
--- /dev/null
+++ b/tests/test.3/blocks/20482
@@ -1,0 +1,49 @@
+Tdentry 17
+name root.1
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650139186283621
+qid.path 17
+qid.version 0
+mode 444
+direct blocks
+	0 3
+	1 11
+	2 0
+	3 0
+	4 0
+	5 0
+	6 0
+	7 0
+	8 0
+	9 0
+	10 0
+	11 0
+	12 0
+	13 0
+	14 0
+	15 0
+	16 0
+	17 0
+	18 0
+	19 0
+	20 0
+	21 0
+	22 0
+	23 0
+	24 0
+	25 0
+	26 0
+	27 0
+	28 0
+	29 0
+	30 0
+	31 0
+indirect blocks
+	0 0
+	1 0
+	2 0
--- /dev/null
+++ b/tests/test.3/blocks/20483
@@ -1,0 +1,14 @@
+Tdentry 16
+name super.1
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650143804556838
+qid.path 16
+qid.version 0
+mode 444
+qidgen 74
+fsok 1
--- /dev/null
+++ b/tests/test.3/blocks/20484
@@ -1,0 +1,18 @@
+Tdentry 15
+name config.1
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650134871854537
+qid.path 15
+qid.version 0
+mode 444
+size 20971520
+nblocks 40960
+backup config 1 to 40959 20484
+backup super 2 to 40958 20483
+backup root 10 to 40957 20482
+service test.3
--- a/tests/test.3/blocks/20486
+++ /dev/null
@@ -1,1 +1,0 @@
-Tblank 0
--- a/tests/test.3/blocks/20487
+++ /dev/null
@@ -1,1 +1,0 @@
-Tdata 12
--- a/tests/test.3/blocks/20488
+++ /dev/null
@@ -1,6 +1,0 @@
-Tdata 11
-start 0
-tfree 0
-qidgen 74
-frees 0
-fsok 1
--- a/tests/test.3/blocks/20489
+++ b/tests/test.3/blocks/20489
@@ -1,7 +1,1 @@
-Tdata 10
-size 20971520
-nblocks 40960
-backup config 1 to 40959 20489
-backup super 2 to 40958 20488
-backup root 19 to 40957 20487
-service test.3
+Tblank
--- a/tests/test.3/blocks/3
+++ b/tests/test.3/blocks/3
@@ -1,21 +1,22 @@
 Tdentry 3
-qid.version 0
-qid.path 3
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668268616172855581
-mode 20000000777
+name adm
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668650134871804347
+qid.path 3
+qid.version 0
+mode 20000000777
 direct blocks
-	0 4
-	1 5
-	2 6
-	3 13
-	4 16
-	5 17
+	0 1
+	1 2
+	2 4
+	3 5
+	4 7
+	5 8
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name adm
--- a/tests/test.3/blocks/4
+++ b/tests/test.3/blocks/4
@@ -1,17 +1,18 @@
-Tdentry 13
-qid.version 0
-qid.path 13
+Tdentry 4
+name users
+uid -1
+gid -1
+muid -1
 size 96
 pdblkno 3
 pqpath 3
-mtime 1668268616172875707
+mtime 1668650134871811063
+qid.path 4
+qid.version 0
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
-	0 14
-	1 18
+	0 6
+	1 9
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name users
--- a/tests/test.3/blocks/40956
+++ b/tests/test.3/blocks/40956
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.3/blocks/40957
+++ b/tests/test.3/blocks/40957
@@ -1,1 +1,49 @@
-Tdata 9
+Tdentry 14
+name root.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650139186019680
+qid.path 14
+qid.version 0
+mode 444
+direct blocks
+	0 3
+	1 11
+	2 0
+	3 0
+	4 0
+	5 0
+	6 0
+	7 0
+	8 0
+	9 0
+	10 0
+	11 0
+	12 0
+	13 0
+	14 0
+	15 0
+	16 0
+	17 0
+	18 0
+	19 0
+	20 0
+	21 0
+	22 0
+	23 0
+	24 0
+	25 0
+	26 0
+	27 0
+	28 0
+	29 0
+	30 0
+	31 0
+indirect blocks
+	0 0
+	1 0
+	2 0
--- a/tests/test.3/blocks/40958
+++ b/tests/test.3/blocks/40958
@@ -1,6 +1,14 @@
-Tdata 8
-start 0
-tfree 0
+Tdentry 13
+name super.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650143804271338
+qid.path 13
+qid.version 0
+mode 444
 qidgen 74
-frees 0
 fsok 1
--- a/tests/test.3/blocks/40959
+++ b/tests/test.3/blocks/40959
@@ -1,7 +1,18 @@
-Tdata 7
+Tdentry 12
+name config.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650134871852840
+qid.path 12
+qid.version 0
+mode 444
 size 20971520
 nblocks 40960
-backup config 1 to 40959 20489
-backup super 2 to 40958 20488
-backup root 19 to 40957 20487
+backup config 1 to 40959 20484
+backup super 2 to 40958 20483
+backup root 10 to 40957 20482
 service test.3
--- a/tests/test.3/blocks/5
+++ b/tests/test.3/blocks/5
@@ -1,21 +1,22 @@
 Tdentry 5
-qid.version 0
-qid.path 5
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668268616172883213
-mode 444
+name bkp
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668650134871806663
+qid.path 5
+qid.version 0
+mode 20000000777
 direct blocks
-	0 2
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
+	0 40959
+	1 40958
+	2 40957
+	3 20484
+	4 20483
+	5 20482
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super
--- a/tests/test.3/blocks/6
+++ b/tests/test.3/blocks/6
@@ -1,52 +1,18 @@
-Tdentry 14
-qid.version 0
-qid.path 14
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668268616172916463
-mode 444
+Tdentry 6
+name inuse
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 15
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name inuse
+size 95
+pdblkno 4
+pqpath 4
+mtime 1668650134871813581
+qid.path 6
+qid.version 0
+mode 444
+-1:adm:adm:glenda
+0:none:adm:
+9999:noworld::
+10000:sys::
+10001:upas:upas:
+10006:glenda:glenda:
--- a/tests/test.3/blocks/7
+++ b/tests/test.3/blocks/7
@@ -1,52 +1,14 @@
-Tdentry 16
-qid.version 0
-qid.path 16
+Tdentry 7
+name frees
+uid -1
+gid -1
+muid -1
 size 34
 pdblkno 3
 pqpath 3
-mtime 1668268654717936930
+mtime 1668650143804586946
+qid.path 7
+qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 21
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name frees
+12 20481 20470
+20485 40956 20472
--- a/tests/test.3/blocks/8
+++ b/tests/test.3/blocks/8
@@ -1,52 +1,12 @@
-Tdentry 17
-qid.version 0
-qid.path 17
+Tdentry 8
+name ctl
+uid -1
+gid -1
+muid -1
 size 0
 pdblkno 3
 pqpath 3
-mtime 1668268616172881003
+mtime 1668650134871822706
+qid.path 8
+qid.version 0
 mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name ctl
--- a/tests/test.3/blocks/9
+++ b/tests/test.3/blocks/9
@@ -1,52 +1,12 @@
-Tdentry 18
-qid.version 0
-qid.path 18
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668268616172918640
-mode 444
+Tdentry 9
+name staging
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name staging
+size 0
+pdblkno 4
+pqpath 4
+mtime 1668650134871836611
+qid.path 9
+qid.version 0
+mode 444
--- a/tests/test.4/blocks/0
+++ b/tests/test.4/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668650208846174676
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.5/blocks/0
+++ b/tests/test.5/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668650271138710360
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.6/blocks/0
+++ b/tests/test.6/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668650301666628876
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.6/blocks/1
+++ b/tests/test.6/blocks/1
@@ -1,7 +1,18 @@
-Tdata 4
+Tdentry 1
+name config
+uid -1
+gid -1
+muid -1
+size 110
+pdblkno 3
+pqpath 3
+mtime 1668650301666654674
+qid.path 1
+qid.version 0
+mode 444
 size 16384
 nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
 service test.6
--- a/tests/test.6/blocks/10
+++ b/tests/test.6/blocks/10
@@ -1,17 +1,18 @@
 Tdentry 10
-qid.version 0
-qid.path 10
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668268945313173592
-mode 444
+name /
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 0
+pqpath 0
+mtime 1668650301666652446
+qid.path 10
+qid.version 0
+mode 20000000777
 direct blocks
-	0 25
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config.1
--- a/tests/test.6/blocks/11
+++ b/tests/test.6/blocks/11
@@ -1,16 +1,17 @@
-Tdentry 11
-qid.version 0
-qid.path 11
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668268945313176412
-mode 444
-uid -1
+Tdentry 64
+name dir1
+uid 10006
 gid -1
-muid -1
+muid 10006
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668650302800016615
+qid.path 64
+qid.version 0
+mode 20000000777
 direct blocks
-	0 24
+	0 12
 	1 0
 	2 0
 	3 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super.1
--- a/tests/test.6/blocks/12
+++ b/tests/test.6/blocks/12
@@ -1,52 +1,13 @@
-Tdentry 12
-qid.version 0
-qid.path 12
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668268945313178765
-mode 444
-uid -1
+Tdentry 65
+name file1
+uid 10006
 gid -1
-muid -1
-direct blocks
-	0 23
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.1
+muid 10006
+size 5
+pdblkno 11
+pqpath 64
+mtime 1668650302802326549
+qid.path 65
+qid.version 0
+mode 666
+test
--- a/tests/test.6/blocks/13
+++ b/tests/test.6/blocks/13
@@ -1,52 +1,1 @@
-Tdentry 13
-qid.version 0
-qid.path 13
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668268945313143307
-mode 20000000777
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 14
-	1 18
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name users
+Tblank
--- a/tests/test.6/blocks/14
+++ b/tests/test.6/blocks/14
@@ -1,52 +1,1 @@
-Tdentry 14
-qid.version 0
-qid.path 14
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668268945313180954
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 15
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name inuse
+Tblank
--- a/tests/test.6/blocks/15
+++ b/tests/test.6/blocks/15
@@ -1,7 +1,1 @@
-Tdata 14
--1:adm:adm:glenda
-0:none:adm:
-9999:noworld::
-10000:sys::
-10001:upas:upas:
-10006:glenda:glenda:
+Tblank
--- a/tests/test.6/blocks/16
+++ b/tests/test.6/blocks/16
@@ -1,52 +1,1 @@
-Tdentry 16
-qid.version 0
-qid.path 16
-size 9
-pdblkno 3
-pqpath 3
-mtime 1668268948456247455
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 26
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name frees
+Tblank
--- a/tests/test.6/blocks/17
+++ b/tests/test.6/blocks/17
@@ -1,52 +1,1 @@
-Tdentry 17
-qid.version 0
-qid.path 17
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668268945313149033
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name ctl
+Tblank
--- a/tests/test.6/blocks/18
+++ b/tests/test.6/blocks/18
@@ -1,17 +1,18 @@
-Tdentry 18
-qid.version 0
-qid.path 18
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668268945313185390
-mode 444
+Tdentry 17
+name root.1
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650302800042411
+qid.path 17
+qid.version 0
+mode 444
 direct blocks
-	0 0
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name staging
--- a/tests/test.6/blocks/19
+++ b/tests/test.6/blocks/19
@@ -1,52 +1,14 @@
-Tdentry 19
-qid.version 0
-qid.path 19
-size 0
-pdblkno 0
-pqpath 0
-mtime 1668268945313189663
-mode 20000000777
+Tdentry 16
+name super.1
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 3
-	1 20
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name /
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650303806586403
+qid.path 16
+qid.version 0
+mode 444
+qidgen 66
+fsok 1
--- a/tests/test.6/blocks/2
+++ b/tests/test.6/blocks/2
@@ -1,6 +1,14 @@
-Tdata 5
-start 0
-tfree 0
+Tdentry 2
+name super
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668650301666551042
+qid.path 2
+qid.version 0
+mode 444
 qidgen 66
-frees 0
 fsok 1
--- a/tests/test.6/blocks/20
+++ b/tests/test.6/blocks/20
@@ -1,52 +1,18 @@
-Tdentry 64
-qid.version 0
-qid.path 64
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668268946449983405
-mode 20000000777
-uid 10006
+Tdentry 15
+name config.1
+uid -1
 gid -1
-muid 10006
-direct blocks
-	0 21
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name dir1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650301666687917
+qid.path 15
+qid.version 0
+mode 444
+size 16384
+nblocks 32
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
+service test.6
--- a/tests/test.6/blocks/21
+++ b/tests/test.6/blocks/21
@@ -1,52 +1,1 @@
-Tdentry 65
-qid.version 0
-qid.path 65
-size 5
-pdblkno 20
-pqpath 64
-mtime 1668268946451984515
-mode 666
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 22
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name file1
+Tblank
--- a/tests/test.6/blocks/22
+++ b/tests/test.6/blocks/22
@@ -1,2 +1,1 @@
-Tdata 65
-test
+Tblank
--- a/tests/test.6/blocks/23
+++ b/tests/test.6/blocks/23
@@ -1,1 +1,1 @@
-Tdata 12
+Tblank
--- a/tests/test.6/blocks/24
+++ b/tests/test.6/blocks/24
@@ -1,6 +1,1 @@
-Tdata 11
-start 0
-tfree 0
-qidgen 66
-frees 0
-fsok 1
+Tblank
--- a/tests/test.6/blocks/25
+++ b/tests/test.6/blocks/25
@@ -1,7 +1,1 @@
-Tdata 10
-size 16384
-nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
-service test.6
+Tblank
--- a/tests/test.6/blocks/26
+++ b/tests/test.6/blocks/26
@@ -1,2 +1,1 @@
-Tdata 16
-26 28 3
+Tblank
--- a/tests/test.6/blocks/27
+++ b/tests/test.6/blocks/27
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.6/blocks/28
+++ b/tests/test.6/blocks/28
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.6/blocks/29
+++ b/tests/test.6/blocks/29
@@ -1,1 +1,49 @@
-Tdata 9
+Tdentry 14
+name root.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650302800040619
+qid.path 14
+qid.version 0
+mode 444
+direct blocks
+	0 3
+	1 11
+	2 0
+	3 0
+	4 0
+	5 0
+	6 0
+	7 0
+	8 0
+	9 0
+	10 0
+	11 0
+	12 0
+	13 0
+	14 0
+	15 0
+	16 0
+	17 0
+	18 0
+	19 0
+	20 0
+	21 0
+	22 0
+	23 0
+	24 0
+	25 0
+	26 0
+	27 0
+	28 0
+	29 0
+	30 0
+	31 0
+indirect blocks
+	0 0
+	1 0
+	2 0
--- a/tests/test.6/blocks/3
+++ b/tests/test.6/blocks/3
@@ -1,21 +1,22 @@
 Tdentry 3
-qid.version 0
-qid.path 3
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668268945313112672
-mode 20000000777
+name adm
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668650301666640490
+qid.path 3
+qid.version 0
+mode 20000000777
 direct blocks
-	0 4
-	1 5
-	2 6
-	3 13
-	4 16
-	5 17
+	0 1
+	1 2
+	2 4
+	3 5
+	4 7
+	5 8
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name adm
--- a/tests/test.6/blocks/30
+++ b/tests/test.6/blocks/30
@@ -1,6 +1,14 @@
-Tdata 8
-start 0
-tfree 0
+Tdentry 13
+name super.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650303806576354
+qid.path 13
+qid.version 0
+mode 444
 qidgen 66
-frees 0
 fsok 1
--- a/tests/test.6/blocks/31
+++ b/tests/test.6/blocks/31
@@ -1,7 +1,18 @@
-Tdata 7
+Tdentry 12
+name config.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668650301666686226
+qid.path 12
+qid.version 0
+mode 444
 size 16384
 nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
 service test.6
--- a/tests/test.6/blocks/4
+++ b/tests/test.6/blocks/4
@@ -1,17 +1,18 @@
 Tdentry 4
-qid.version 0
-qid.path 4
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668268945313146589
-mode 444
+name users
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668650301666647507
+qid.path 4
+qid.version 0
+mode 20000000777
 direct blocks
-	0 1
-	1 0
+	0 6
+	1 9
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config
--- a/tests/test.6/blocks/5
+++ b/tests/test.6/blocks/5
@@ -1,21 +1,22 @@
 Tdentry 5
-qid.version 0
-qid.path 5
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668268945313151280
-mode 444
+name bkp
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668650301666642816
+qid.path 5
+qid.version 0
+mode 20000000777
 direct blocks
-	0 2
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
+	0 31
+	1 30
+	2 29
+	3 20
+	4 19
+	5 18
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super
--- a/tests/test.6/blocks/6
+++ b/tests/test.6/blocks/6
@@ -1,52 +1,18 @@
 Tdentry 6
-qid.version 0
-qid.path 6
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668268945313136086
-mode 20000000777
+name inuse
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 7
-	1 8
-	2 9
-	3 10
-	4 11
-	5 12
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name bkp
+size 95
+pdblkno 4
+pqpath 4
+mtime 1668650301666650107
+qid.path 6
+qid.version 0
+mode 444
+-1:adm:adm:glenda
+0:none:adm:
+9999:noworld::
+10000:sys::
+10001:upas:upas:
+10006:glenda:glenda:
--- a/tests/test.6/blocks/7
+++ b/tests/test.6/blocks/7
@@ -1,52 +1,14 @@
 Tdentry 7
-qid.version 0
-qid.path 7
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668268945313158088
-mode 444
+name frees
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 31
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name config.0
+size 17
+pdblkno 3
+pqpath 3
+mtime 1668650304806630670
+qid.path 7
+qid.version 0
+mode 444
+13 17 5
+21 28 8
--- a/tests/test.6/blocks/8
+++ b/tests/test.6/blocks/8
@@ -1,52 +1,12 @@
 Tdentry 8
-qid.version 0
-qid.path 8
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668268945313160174
-mode 444
+name ctl
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 30
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name super.0
+size 0
+pdblkno 3
+pqpath 3
+mtime 1668650301666659488
+qid.path 8
+qid.version 0
+mode 444
--- a/tests/test.6/blocks/9
+++ b/tests/test.6/blocks/9
@@ -1,52 +1,12 @@
 Tdentry 9
-qid.version 0
-qid.path 9
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668268945313162474
-mode 444
+name staging
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 29
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.0
+size 0
+pdblkno 4
+pqpath 4
+mtime 1668650301666670919
+qid.path 9
+qid.version 0
+mode 444
--- a/tests/test.7/blocks/0
+++ b/tests/test.7/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668652117170008213
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.8/blocks/0
+++ b/tests/test.8/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668652159875585297
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.8/blocks/1
+++ b/tests/test.8/blocks/1
@@ -1,7 +1,18 @@
-Tdata 4
+Tdentry 1
+name config
+uid -1
+gid -1
+muid -1
+size 110
+pdblkno 3
+pqpath 3
+mtime 1668652159875610638
+qid.path 1
+qid.version 0
+mode 444
 size 14336
 nblocks 28
-backup config 1 to 27 23
-backup super 2 to 26 22
-backup root 19 to 25 21
+backup config 1 to 27 18
+backup super 2 to 26 17
+backup root 10 to 25 16
 service test.8
--- a/tests/test.8/blocks/10
+++ b/tests/test.8/blocks/10
@@ -1,16 +1,17 @@
 Tdentry 10
-qid.version 0
-qid.path 10
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668274333688092833
-mode 444
+name /
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 0
+pqpath 0
+mtime 1668652159875608431
+qid.path 10
+qid.version 0
+mode 20000000777
 direct blocks
-	0 23
+	0 3
 	1 0
 	2 0
 	3 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config.1
--- a/tests/test.8/blocks/11
+++ b/tests/test.8/blocks/11
@@ -1,52 +1,1 @@
-Tdentry 11
-qid.version 0
-qid.path 11
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668274333688095360
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 22
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name super.1
+Tblank
--- a/tests/test.8/blocks/12
+++ b/tests/test.8/blocks/12
@@ -1,52 +1,1 @@
-Tdentry 12
-qid.version 0
-qid.path 12
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668274333688097668
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 21
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.1
+Tblank
--- a/tests/test.8/blocks/13
+++ b/tests/test.8/blocks/13
@@ -1,52 +1,1 @@
-Tdentry 13
-qid.version 0
-qid.path 13
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668274333688064710
-mode 20000000777
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 14
-	1 18
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name users
+Tblank
--- a/tests/test.8/blocks/14
+++ b/tests/test.8/blocks/14
@@ -1,52 +1,1 @@
-Tdentry 14
-qid.version 0
-qid.path 14
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668274333688099836
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 15
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name inuse
+Tblank
--- a/tests/test.8/blocks/15
+++ b/tests/test.8/blocks/15
@@ -1,7 +1,1 @@
-Tdata 14
--1:adm:adm:glenda
-0:none:adm:
-9999:noworld::
-10000:sys::
-10001:upas:upas:
-10006:glenda:glenda:
+Tblank
--- a/tests/test.8/blocks/16
+++ b/tests/test.8/blocks/16
@@ -1,16 +1,17 @@
-Tdentry 16
-qid.version 0
-qid.path 16
-size 17
-pdblkno 3
-pqpath 3
-mtime 1668274335812543713
-mode 444
+Tdentry 17
+name root.1
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668652159875549827
+qid.path 17
+qid.version 0
+mode 444
 direct blocks
-	0 20
+	0 16
 	1 0
 	2 0
 	3 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name frees
--- a/tests/test.8/blocks/17
+++ b/tests/test.8/blocks/17
@@ -1,52 +1,14 @@
-Tdentry 17
-qid.version 0
-qid.path 17
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668274333688069640
-mode 444
+Tdentry 16
+name super.1
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name ctl
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668652161000428146
+qid.path 16
+qid.version 0
+mode 444
+qidgen 64
+fsok 1
--- a/tests/test.8/blocks/2
+++ b/tests/test.8/blocks/2
@@ -1,6 +1,14 @@
-Tdata 5
-start 0
-tfree 0
+Tdentry 2
+name super
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668652159875512135
+qid.path 2
+qid.version 0
+mode 444
 qidgen 64
-frees 0
 fsok 1
--- a/tests/test.8/blocks/21
+++ b/tests/test.8/blocks/21
@@ -1,1 +1,1 @@
-Tdata 12
+Tblank
--- a/tests/test.8/blocks/22
+++ b/tests/test.8/blocks/22
@@ -1,6 +1,1 @@
-Tdata 11
-start 0
-tfree 0
-qidgen 64
-frees 0
-fsok 1
+Tblank
--- a/tests/test.8/blocks/23
+++ b/tests/test.8/blocks/23
@@ -1,7 +1,1 @@
-Tdata 10
-size 14336
-nblocks 28
-backup config 1 to 27 23
-backup super 2 to 26 22
-backup root 19 to 25 21
-service test.8
+Tblank
--- a/tests/test.8/blocks/24
+++ b/tests/test.8/blocks/24
@@ -1,1 +1,1 @@
-Tblank 0
+Tblank
--- a/tests/test.8/blocks/25
+++ b/tests/test.8/blocks/25
@@ -1,1 +1,49 @@
-Tdata 9
+Tdentry 14
+name root.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668652159875536916
+qid.path 14
+qid.version 0
+mode 444
+direct blocks
+	0 25
+	1 0
+	2 0
+	3 0
+	4 0
+	5 0
+	6 0
+	7 0
+	8 0
+	9 0
+	10 0
+	11 0
+	12 0
+	13 0
+	14 0
+	15 0
+	16 0
+	17 0
+	18 0
+	19 0
+	20 0
+	21 0
+	22 0
+	23 0
+	24 0
+	25 0
+	26 0
+	27 0
+	28 0
+	29 0
+	30 0
+	31 0
+indirect blocks
+	0 0
+	1 0
+	2 0
--- a/tests/test.8/blocks/3
+++ b/tests/test.8/blocks/3
@@ -1,21 +1,22 @@
 Tdentry 3
-qid.version 0
-qid.path 3
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668274333688049524
-mode 20000000777
+name adm
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668652159875596755
+qid.path 3
+qid.version 0
+mode 20000000777
 direct blocks
-	0 4
-	1 5
-	2 6
-	3 13
-	4 16
-	5 17
+	0 1
+	1 2
+	2 4
+	3 5
+	4 7
+	5 8
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name adm
--- a/tests/test.8/blocks/4
+++ b/tests/test.8/blocks/4
@@ -1,17 +1,18 @@
 Tdentry 4
-qid.version 0
-qid.path 4
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668274333688067439
-mode 444
+name users
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668652159875603405
+qid.path 4
+qid.version 0
+mode 20000000777
 direct blocks
-	0 1
-	1 0
+	0 6
+	1 9
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config
--- a/tests/test.8/blocks/5
+++ b/tests/test.8/blocks/5
@@ -1,21 +1,22 @@
 Tdentry 5
-qid.version 0
-qid.path 5
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668274333688071645
-mode 444
+name bkp
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668652159875599115
+qid.path 5
+qid.version 0
+mode 20000000777
 direct blocks
-	0 2
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
+	0 27
+	1 26
+	2 25
+	3 18
+	4 17
+	5 16
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super
--- a/tests/test.8/blocks/6
+++ b/tests/test.8/blocks/6
@@ -1,52 +1,18 @@
 Tdentry 6
-qid.version 0
-qid.path 6
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668274333688057653
-mode 20000000777
+name inuse
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 7
-	1 8
-	2 9
-	3 10
-	4 11
-	5 12
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name bkp
+size 95
+pdblkno 4
+pqpath 4
+mtime 1668652159875605941
+qid.path 6
+qid.version 0
+mode 444
+-1:adm:adm:glenda
+0:none:adm:
+9999:noworld::
+10000:sys::
+10001:upas:upas:
+10006:glenda:glenda:
--- a/tests/test.8/blocks/7
+++ b/tests/test.8/blocks/7
@@ -1,52 +1,14 @@
 Tdentry 7
-qid.version 0
-qid.path 7
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668274333688078187
-mode 444
+name frees
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 27
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name config.0
+size 17
+pdblkno 3
+pqpath 3
+mtime 1668652162000027275
+qid.path 7
+qid.version 0
+mode 444
+11 15 5
+19 24 6
--- a/tests/test.8/blocks/8
+++ b/tests/test.8/blocks/8
@@ -1,52 +1,12 @@
 Tdentry 8
-qid.version 0
-qid.path 8
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668274333688080235
-mode 444
+name ctl
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 26
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name super.0
+size 0
+pdblkno 3
+pqpath 3
+mtime 1668652159875615287
+qid.path 8
+qid.version 0
+mode 444
--- a/tests/test.8/blocks/9
+++ b/tests/test.8/blocks/9
@@ -1,52 +1,12 @@
 Tdentry 9
-qid.version 0
-qid.path 9
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668274333688082212
-mode 444
+name staging
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 25
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.0
+size 0
+pdblkno 4
+pqpath 4
+mtime 1668652159875625824
+qid.path 9
+qid.version 0
+mode 444
--- a/tests/test.9/blocks/0
+++ b/tests/test.9/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668653022095165750
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.9/blocks/1
+++ b/tests/test.9/blocks/1
@@ -1,7 +1,18 @@
-Tdata 4
+Tdentry 1
+name config
+uid -1
+gid -1
+muid -1
+size 138
+pdblkno 3
+pqpath 3
+mtime 1668653022095190715
+qid.path 1
+qid.version 0
+mode 444
 size 67108864
 nblocks 131072
-backup config 1 to 131071 65545
-backup super 2 to 131070 65544
-backup root 19 to 131069 65543
+backup config 1 to 131071 65540
+backup super 2 to 131070 65539
+backup root 10 to 131069 65538
 service test.9
--- a/tests/test.9/blocks/10
+++ b/tests/test.9/blocks/10
@@ -1,20 +1,21 @@
 Tdentry 10
-qid.version 0
-qid.path 10
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668272238680072187
-mode 444
+name /
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 0
+pqpath 0
+mtime 1668653022095188588
+qid.path 10
+qid.version 0
+mode 20000000777
 direct blocks
-	0 65545
-	1 0
-	2 0
-	3 0
-	4 0
+	0 3
+	1 11
+	2 13
+	3 16
+	4 4066
 	5 0
 	6 0
 	7 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config.1
--- a/tests/test.9/blocks/11
+++ b/tests/test.9/blocks/11
@@ -1,16 +1,17 @@
-Tdentry 11
-qid.version 0
-qid.path 11
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668272238680086630
-mode 444
-uid -1
+Tdentry 64
+name dir1
+uid 10006
 gid -1
-muid -1
+muid 10006
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668653023229137295
+qid.path 64
+qid.version 0
+mode 20000000777
 direct blocks
-	0 65544
+	0 12
 	1 0
 	2 0
 	3 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super.1
--- a/tests/test.9/blocks/12
+++ b/tests/test.9/blocks/12
@@ -1,52 +1,13 @@
-Tdentry 12
-qid.version 0
-qid.path 12
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668272238680089218
-mode 444
-uid -1
+Tdentry 65
+name file1
+uid 10006
 gid -1
-muid -1
-direct blocks
-	0 65543
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.1
+muid 10006
+size 5
+pdblkno 11
+pqpath 64
+mtime 1668653023231061192
+qid.path 65
+qid.version 0
+mode 666
+test
--- a/tests/test.9/blocks/13
+++ b/tests/test.9/blocks/13
@@ -1,17 +1,18 @@
-Tdentry 13
+Tdentry 66
+name dir2
+uid 10006
+gid -1
+muid 10006
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668653023231774498
+qid.path 66
 qid.version 0
-qid.path 13
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668272238680052584
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 14
-	1 18
+	1 15
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name users
--- a/tests/test.9/blocks/14
+++ b/tests/test.9/blocks/14
@@ -1,52 +1,13 @@
-Tdentry 14
-qid.version 0
-qid.path 14
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668272238680091484
-mode 444
-uid -1
+Tdentry 67
+name file1
+uid 10006
 gid -1
-muid -1
-direct blocks
-	0 15
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name inuse
+muid 10006
+size 5
+pdblkno 13
+pqpath 66
+mtime 1668653023233464579
+qid.path 67
+qid.version 0
+mode 666
+test
--- a/tests/test.9/blocks/15
+++ b/tests/test.9/blocks/15
@@ -1,7 +1,13 @@
-Tdata 14
--1:adm:adm:glenda
-0:none:adm:
-9999:noworld::
-10000:sys::
-10001:upas:upas:
-10006:glenda:glenda:
+Tdentry 68
+name file2
+uid 10006
+gid -1
+muid 10006
+size 5
+pdblkno 13
+pqpath 66
+mtime 1668653023235381987
+qid.path 68
+qid.version 0
+mode 666
+test
--- a/tests/test.9/blocks/16
+++ b/tests/test.9/blocks/16
@@ -1,16 +1,17 @@
-Tdentry 16
-qid.version 0
-qid.path 16
-size 37
-pdblkno 3
-pqpath 3
-mtime 1668272294557341178
-mode 444
-uid -1
+Tdentry 69
+name dir3
+uid 10006
 gid -1
-muid -1
+muid 10006
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668653023236141719
+qid.path 69
+qid.version 0
+mode 20000000777
 direct blocks
-	0 57162
+	0 17
 	1 0
 	2 0
 	3 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name frees
--- /dev/null
+++ b/tests/test.9/blocks/17
@@ -1,0 +1,49 @@
+Tdentry 70
+name 2MB.file
+uid 10006
+gid -1
+muid 10006
+size 2056192
+pdblkno 16
+pqpath 69
+mtime 1665294406000000000
+qid.path 70
+qid.version 0
+mode 664
+direct blocks
+	0 18
+	1 34
+	2 50
+	3 66
+	4 82
+	5 98
+	6 114
+	7 130
+	8 146
+	9 162
+	10 178
+	11 194
+	12 210
+	13 226
+	14 242
+	15 258
+	16 274
+	17 290
+	18 306
+	19 322
+	20 338
+	21 354
+	22 370
+	23 386
+	24 402
+	25 418
+	26 434
+	27 450
+	28 466
+	29 482
+	30 498
+	31 514
+indirect blocks
+	0 546
+	1 0
+	2 0
--- a/tests/test.9/blocks/18
+++ b/tests/test.9/blocks/18
@@ -1,52 +1,554 @@
-Tdentry 18
-qid.version 0
-qid.path 18
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668272238680093660
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name staging
+Tdata 70
+0 0123456789
+1 0123456789
+2 0123456789
+3 0123456789
+4 0123456789
+5 0123456789
+6 0123456789
+7 0123456789
+8 0123456789
+9 0123456789
+10 0123456789
+11 0123456789
+12 0123456789
+13 0123456789
+14 0123456789
+15 0123456789
+16 0123456789
+17 0123456789
+18 0123456789
+19 0123456789
+20 0123456789
+21 0123456789
+22 0123456789
+23 0123456789
+24 0123456789
+25 0123456789
+26 0123456789
+27 0123456789
+28 0123456789
+29 0123456789
+30 0123456789
+31 0123456789
+32 0123456789
+33 0123456789
+34 0123456789
+35 0123456789
+36 0123456789
+37 0123456789
+38 0123456789
+39 0123456789
+40 0123456789
+41 0123456789
+42 0123456789
+43 0123456789
+44 0123456789
+45 0123456789
+46 0123456789
+47 0123456789
+48 0123456789
+49 0123456789
+50 0123456789
+51 0123456789
+52 0123456789
+53 0123456789
+54 0123456789
+55 0123456789
+56 0123456789
+57 0123456789
+58 0123456789
+59 0123456789
+60 0123456789
+61 0123456789
+62 0123456789
+63 0123456789
+64 0123456789
+65 0123456789
+66 0123456789
+67 0123456789
+68 0123456789
+69 0123456789
+70 0123456789
+71 0123456789
+72 0123456789
+73 0123456789
+74 0123456789
+75 0123456789
+76 0123456789
+77 0123456789
+78 0123456789
+79 0123456789
+80 0123456789
+81 0123456789
+82 0123456789
+83 0123456789
+84 0123456789
+85 0123456789
+86 0123456789
+87 0123456789
+88 0123456789
+89 0123456789
+90 0123456789
+91 0123456789
+92 0123456789
+93 0123456789
+94 0123456789
+95 0123456789
+96 0123456789
+97 0123456789
+98 0123456789
+99 0123456789
+100 0123456789
+101 0123456789
+102 0123456789
+103 0123456789
+104 0123456789
+105 0123456789
+106 0123456789
+107 0123456789
+108 0123456789
+109 0123456789
+110 0123456789
+111 0123456789
+112 0123456789
+113 0123456789
+114 0123456789
+115 0123456789
+116 0123456789
+117 0123456789
+118 0123456789
+119 0123456789
+120 0123456789
+121 0123456789
+122 0123456789
+123 0123456789
+124 0123456789
+125 0123456789
+126 0123456789
+127 0123456789
+128 0123456789
+129 0123456789
+130 0123456789
+131 0123456789
+132 0123456789
+133 0123456789
+134 0123456789
+135 0123456789
+136 0123456789
+137 0123456789
+138 0123456789
+139 0123456789
+140 0123456789
+141 0123456789
+142 0123456789
+143 0123456789
+144 0123456789
+145 0123456789
+146 0123456789
+147 0123456789
+148 0123456789
+149 0123456789
+150 0123456789
+151 0123456789
+152 0123456789
+153 0123456789
+154 0123456789
+155 0123456789
+156 0123456789
+157 0123456789
+158 0123456789
+159 0123456789
+160 0123456789
+161 0123456789
+162 0123456789
+163 0123456789
+164 0123456789
+165 0123456789
+166 0123456789
+167 0123456789
+168 0123456789
+169 0123456789
+170 0123456789
+171 0123456789
+172 0123456789
+173 0123456789
+174 0123456789
+175 0123456789
+176 0123456789
+177 0123456789
+178 0123456789
+179 0123456789
+180 0123456789
+181 0123456789
+182 0123456789
+183 0123456789
+184 0123456789
+185 0123456789
+186 0123456789
+187 0123456789
+188 0123456789
+189 0123456789
+190 0123456789
+191 0123456789
+192 0123456789
+193 0123456789
+194 0123456789
+195 0123456789
+196 0123456789
+197 0123456789
+198 0123456789
+199 0123456789
+200 0123456789
+201 0123456789
+202 0123456789
+203 0123456789
+204 0123456789
+205 0123456789
+206 0123456789
+207 0123456789
+208 0123456789
+209 0123456789
+210 0123456789
+211 0123456789
+212 0123456789
+213 0123456789
+214 0123456789
+215 0123456789
+216 0123456789
+217 0123456789
+218 0123456789
+219 0123456789
+220 0123456789
+221 0123456789
+222 0123456789
+223 0123456789
+224 0123456789
+225 0123456789
+226 0123456789
+227 0123456789
+228 0123456789
+229 0123456789
+230 0123456789
+231 0123456789
+232 0123456789
+233 0123456789
+234 0123456789
+235 0123456789
+236 0123456789
+237 0123456789
+238 0123456789
+239 0123456789
+240 0123456789
+241 0123456789
+242 0123456789
+243 0123456789
+244 0123456789
+245 0123456789
+246 0123456789
+247 0123456789
+248 0123456789
+249 0123456789
+250 0123456789
+251 0123456789
+252 0123456789
+253 0123456789
+254 0123456789
+255 0123456789
+256 0123456789
+257 0123456789
+258 0123456789
+259 0123456789
+260 0123456789
+261 0123456789
+262 0123456789
+263 0123456789
+264 0123456789
+265 0123456789
+266 0123456789
+267 0123456789
+268 0123456789
+269 0123456789
+270 0123456789
+271 0123456789
+272 0123456789
+273 0123456789
+274 0123456789
+275 0123456789
+276 0123456789
+277 0123456789
+278 0123456789
+279 0123456789
+280 0123456789
+281 0123456789
+282 0123456789
+283 0123456789
+284 0123456789
+285 0123456789
+286 0123456789
+287 0123456789
+288 0123456789
+289 0123456789
+290 0123456789
+291 0123456789
+292 0123456789
+293 0123456789
+294 0123456789
+295 0123456789
+296 0123456789
+297 0123456789
+298 0123456789
+299 0123456789
+300 0123456789
+301 0123456789
+302 0123456789
+303 0123456789
+304 0123456789
+305 0123456789
+306 0123456789
+307 0123456789
+308 0123456789
+309 0123456789
+310 0123456789
+311 0123456789
+312 0123456789
+313 0123456789
+314 0123456789
+315 0123456789
+316 0123456789
+317 0123456789
+318 0123456789
+319 0123456789
+320 0123456789
+321 0123456789
+322 0123456789
+323 0123456789
+324 0123456789
+325 0123456789
+326 0123456789
+327 0123456789
+328 0123456789
+329 0123456789
+330 0123456789
+331 0123456789
+332 0123456789
+333 0123456789
+334 0123456789
+335 0123456789
+336 0123456789
+337 0123456789
+338 0123456789
+339 0123456789
+340 0123456789
+341 0123456789
+342 0123456789
+343 0123456789
+344 0123456789
+345 0123456789
+346 0123456789
+347 0123456789
+348 0123456789
+349 0123456789
+350 0123456789
+351 0123456789
+352 0123456789
+353 0123456789
+354 0123456789
+355 0123456789
+356 0123456789
+357 0123456789
+358 0123456789
+359 0123456789
+360 0123456789
+361 0123456789
+362 0123456789
+363 0123456789
+364 0123456789
+365 0123456789
+366 0123456789
+367 0123456789
+368 0123456789
+369 0123456789
+370 0123456789
+371 0123456789
+372 0123456789
+373 0123456789
+374 0123456789
+375 0123456789
+376 0123456789
+377 0123456789
+378 0123456789
+379 0123456789
+380 0123456789
+381 0123456789
+382 0123456789
+383 0123456789
+384 0123456789
+385 0123456789
+386 0123456789
+387 0123456789
+388 0123456789
+389 0123456789
+390 0123456789
+391 0123456789
+392 0123456789
+393 0123456789
+394 0123456789
+395 0123456789
+396 0123456789
+397 0123456789
+398 0123456789
+399 0123456789
+400 0123456789
+401 0123456789
+402 0123456789
+403 0123456789
+404 0123456789
+405 0123456789
+406 0123456789
+407 0123456789
+408 0123456789
+409 0123456789
+410 0123456789
+411 0123456789
+412 0123456789
+413 0123456789
+414 0123456789
+415 0123456789
+416 0123456789
+417 0123456789
+418 0123456789
+419 0123456789
+420 0123456789
+421 0123456789
+422 0123456789
+423 0123456789
+424 0123456789
+425 0123456789
+426 0123456789
+427 0123456789
+428 0123456789
+429 0123456789
+430 0123456789
+431 0123456789
+432 0123456789
+433 0123456789
+434 0123456789
+435 0123456789
+436 0123456789
+437 0123456789
+438 0123456789
+439 0123456789
+440 0123456789
+441 0123456789
+442 0123456789
+443 0123456789
+444 0123456789
+445 0123456789
+446 0123456789
+447 0123456789
+448 0123456789
+449 0123456789
+450 0123456789
+451 0123456789
+452 0123456789
+453 0123456789
+454 0123456789
+455 0123456789
+456 0123456789
+457 0123456789
+458 0123456789
+459 0123456789
+460 0123456789
+461 0123456789
+462 0123456789
+463 0123456789
+464 0123456789
+465 0123456789
+466 0123456789
+467 0123456789
+468 0123456789
+469 0123456789
+470 0123456789
+471 0123456789
+472 0123456789
+473 0123456789
+474 0123456789
+475 0123456789
+476 0123456789
+477 0123456789
+478 0123456789
+479 0123456789
+480 0123456789
+481 0123456789
+482 0123456789
+483 0123456789
+484 0123456789
+485 0123456789
+486 0123456789
+487 0123456789
+488 0123456789
+489 0123456789
+490 0123456789
+491 0123456789
+492 0123456789
+493 0123456789
+494 0123456789
+495 0123456789
+496 0123456789
+497 0123456789
+498 0123456789
+499 0123456789
+500 0123456789
+501 0123456789
+502 0123456789
+503 0123456789
+504 0123456789
+505 0123456789
+506 0123456789
+507 0123456789
+508 0123456789
+509 0123456789
+510 0123456789
+511 0123456789
+512 0123456789
+513 0123456789
+514 0123456789
+515 0123456789
+516 0123456789
+517 0123456789
+518 0123456789
+519 0123456789
+520 0123456789
+521 0123456789
+522 0123456789
+523 0123456789
+524 0123456789
+525 0123456789
+526 0123456789
+527 0123456789
+528 0123456789
+529 0123456789
+530 0123456789
+531 0123456789
+532 0123456789
+533 0123456789
+534 0123456789
+535 0123456789
+536 0123456789
+537 0123456789
+538 0123456789
+539 0123456789
+540 0123456789
+541 0123456789
+542 0123456789
+543 0123456789
+544 0123456789
+545 0123456789
+546 0123456789
+547 0123456789
+548 0123456789
+549 0123456789
+550 0123456789
+551 0123456789
+552 012345678F
--- a/tests/test.9/blocks/19
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 19
-qid.version 0
-qid.path 19
-size 0
-pdblkno 0
-pqpath 0
-mtime 1668272238680100102
-mode 20000000777
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 3
-	1 20
-	2 23
-	3 28
-	4 4187
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name /
--- a/tests/test.9/blocks/2
+++ b/tests/test.9/blocks/2
@@ -1,6 +1,14 @@
-Tdata 5
-start 0
-tfree 0
+Tdentry 2
+name super
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668653022095080093
+qid.path 2
+qid.version 0
+mode 444
 qidgen 73
-frees 0
 fsok 1
--- a/tests/test.9/blocks/20
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 64
-qid.version 0
-qid.path 64
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668272239817566223
-mode 20000000777
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 21
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name dir1
--- a/tests/test.9/blocks/21
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 65
-qid.version 0
-qid.path 65
-size 5
-pdblkno 20
-pqpath 64
-mtime 1668272239819619641
-mode 666
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 22
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name file1
--- a/tests/test.9/blocks/22
+++ /dev/null
@@ -1,2 +1,0 @@
-Tdata 65
-test
--- a/tests/test.9/blocks/23
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 66
-qid.version 0
-qid.path 66
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668272239820394703
-mode 20000000777
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 24
-	1 26
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name dir2
--- a/tests/test.9/blocks/24
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 67
-qid.version 0
-qid.path 67
-size 5
-pdblkno 23
-pqpath 66
-mtime 1668272239822238176
-mode 666
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 25
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name file1
--- a/tests/test.9/blocks/25
+++ /dev/null
@@ -1,2 +1,0 @@
-Tdata 67
-test
--- a/tests/test.9/blocks/26
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 68
-qid.version 0
-qid.path 68
-size 5
-pdblkno 23
-pqpath 66
-mtime 1668272239824203726
-mode 666
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 27
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name file2
--- a/tests/test.9/blocks/29
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 70
-qid.version 0
-qid.path 70
-size 2056192
-pdblkno 28
-pqpath 69
-mtime 1665294406000000000
-mode 664
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 30
-	1 31
-	2 32
-	3 33
-	4 34
-	5 35
-	6 36
-	7 37
-	8 38
-	9 39
-	10 40
-	11 41
-	12 42
-	13 43
-	14 44
-	15 45
-	16 46
-	17 47
-	18 48
-	19 49
-	20 50
-	21 51
-	22 52
-	23 53
-	24 54
-	25 55
-	26 56
-	27 57
-	28 58
-	29 59
-	30 60
-	31 61
-indirect blocks
-	0 63
-	1 128
-	2 4045
-	3 0
-	4 0
-	5 0
-name 2MB.file
--- a/tests/test.9/blocks/30
+++ /dev/null
@@ -1,38 +1,0 @@
-Tdata 70
-0 0123456789
-1 0123456789
-2 0123456789
-3 0123456789
-4 0123456789
-5 0123456789
-6 0123456789
-7 0123456789
-8 0123456789
-9 0123456789
-10 0123456789
-11 0123456789
-12 0123456789
-13 0123456789
-14 0123456789
-15 0123456789
-16 0123456789
-17 0123456789
-18 0123456789
-19 0123456789
-20 0123456789
-21 0123456789
-22 0123456789
-23 0123456789
-24 0123456789
-25 0123456789
-26 0123456789
-27 0123456789
-28 0123456789
-29 0123456789
-30 0123456789
-31 0123456789
-32 0123456789
-33 0123456789
-34 0123456789
-35 0123456789
-36 012345F
--- a/tests/test.9/blocks/4
+++ b/tests/test.9/blocks/4
@@ -1,17 +1,18 @@
 Tdentry 4
-qid.version 0
-qid.path 4
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668272238680055378
-mode 444
+name users
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668653022095183752
+qid.path 4
+qid.version 0
+mode 20000000777
 direct blocks
-	0 1
-	1 0
+	0 6
+	1 9
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config
--- /dev/null
+++ b/tests/test.9/blocks/4067
@@ -1,0 +1,49 @@
+Tdentry 72
+name 25MB.file
+uid 10006
+gid -1
+muid 10006
+size 26214400
+pdblkno 4066
+pqpath 71
+mtime 1665292864000000000
+qid.path 72
+qid.version 0
+mode 664
+direct blocks
+	0 4068
+	1 4084
+	2 4100
+	3 4116
+	4 4132
+	5 4148
+	6 4164
+	7 4180
+	8 4196
+	9 4212
+	10 4228
+	11 4244
+	12 4260
+	13 4276
+	14 4292
+	15 4308
+	16 4324
+	17 4340
+	18 4356
+	19 4372
+	20 4388
+	21 4404
+	22 4420
+	23 4436
+	24 4452
+	25 4468
+	26 4484
+	27 4500
+	28 4516
+	29 4532
+	30 4548
+	31 4564
+indirect blocks
+	0 4596
+	1 20964
+	2 0
--- /dev/null
+++ b/tests/test.9/blocks/4068
@@ -1,0 +1,554 @@
+Tdata 72
+0 0123456789
+1 0123456789
+2 0123456789
+3 0123456789
+4 0123456789
+5 0123456789
+6 0123456789
+7 0123456789
+8 0123456789
+9 0123456789
+10 0123456789
+11 0123456789
+12 0123456789
+13 0123456789
+14 0123456789
+15 0123456789
+16 0123456789
+17 0123456789
+18 0123456789
+19 0123456789
+20 0123456789
+21 0123456789
+22 0123456789
+23 0123456789
+24 0123456789
+25 0123456789
+26 0123456789
+27 0123456789
+28 0123456789
+29 0123456789
+30 0123456789
+31 0123456789
+32 0123456789
+33 0123456789
+34 0123456789
+35 0123456789
+36 0123456789
+37 0123456789
+38 0123456789
+39 0123456789
+40 0123456789
+41 0123456789
+42 0123456789
+43 0123456789
+44 0123456789
+45 0123456789
+46 0123456789
+47 0123456789
+48 0123456789
+49 0123456789
+50 0123456789
+51 0123456789
+52 0123456789
+53 0123456789
+54 0123456789
+55 0123456789
+56 0123456789
+57 0123456789
+58 0123456789
+59 0123456789
+60 0123456789
+61 0123456789
+62 0123456789
+63 0123456789
+64 0123456789
+65 0123456789
+66 0123456789
+67 0123456789
+68 0123456789
+69 0123456789
+70 0123456789
+71 0123456789
+72 0123456789
+73 0123456789
+74 0123456789
+75 0123456789
+76 0123456789
+77 0123456789
+78 0123456789
+79 0123456789
+80 0123456789
+81 0123456789
+82 0123456789
+83 0123456789
+84 0123456789
+85 0123456789
+86 0123456789
+87 0123456789
+88 0123456789
+89 0123456789
+90 0123456789
+91 0123456789
+92 0123456789
+93 0123456789
+94 0123456789
+95 0123456789
+96 0123456789
+97 0123456789
+98 0123456789
+99 0123456789
+100 0123456789
+101 0123456789
+102 0123456789
+103 0123456789
+104 0123456789
+105 0123456789
+106 0123456789
+107 0123456789
+108 0123456789
+109 0123456789
+110 0123456789
+111 0123456789
+112 0123456789
+113 0123456789
+114 0123456789
+115 0123456789
+116 0123456789
+117 0123456789
+118 0123456789
+119 0123456789
+120 0123456789
+121 0123456789
+122 0123456789
+123 0123456789
+124 0123456789
+125 0123456789
+126 0123456789
+127 0123456789
+128 0123456789
+129 0123456789
+130 0123456789
+131 0123456789
+132 0123456789
+133 0123456789
+134 0123456789
+135 0123456789
+136 0123456789
+137 0123456789
+138 0123456789
+139 0123456789
+140 0123456789
+141 0123456789
+142 0123456789
+143 0123456789
+144 0123456789
+145 0123456789
+146 0123456789
+147 0123456789
+148 0123456789
+149 0123456789
+150 0123456789
+151 0123456789
+152 0123456789
+153 0123456789
+154 0123456789
+155 0123456789
+156 0123456789
+157 0123456789
+158 0123456789
+159 0123456789
+160 0123456789
+161 0123456789
+162 0123456789
+163 0123456789
+164 0123456789
+165 0123456789
+166 0123456789
+167 0123456789
+168 0123456789
+169 0123456789
+170 0123456789
+171 0123456789
+172 0123456789
+173 0123456789
+174 0123456789
+175 0123456789
+176 0123456789
+177 0123456789
+178 0123456789
+179 0123456789
+180 0123456789
+181 0123456789
+182 0123456789
+183 0123456789
+184 0123456789
+185 0123456789
+186 0123456789
+187 0123456789
+188 0123456789
+189 0123456789
+190 0123456789
+191 0123456789
+192 0123456789
+193 0123456789
+194 0123456789
+195 0123456789
+196 0123456789
+197 0123456789
+198 0123456789
+199 0123456789
+200 0123456789
+201 0123456789
+202 0123456789
+203 0123456789
+204 0123456789
+205 0123456789
+206 0123456789
+207 0123456789
+208 0123456789
+209 0123456789
+210 0123456789
+211 0123456789
+212 0123456789
+213 0123456789
+214 0123456789
+215 0123456789
+216 0123456789
+217 0123456789
+218 0123456789
+219 0123456789
+220 0123456789
+221 0123456789
+222 0123456789
+223 0123456789
+224 0123456789
+225 0123456789
+226 0123456789
+227 0123456789
+228 0123456789
+229 0123456789
+230 0123456789
+231 0123456789
+232 0123456789
+233 0123456789
+234 0123456789
+235 0123456789
+236 0123456789
+237 0123456789
+238 0123456789
+239 0123456789
+240 0123456789
+241 0123456789
+242 0123456789
+243 0123456789
+244 0123456789
+245 0123456789
+246 0123456789
+247 0123456789
+248 0123456789
+249 0123456789
+250 0123456789
+251 0123456789
+252 0123456789
+253 0123456789
+254 0123456789
+255 0123456789
+256 0123456789
+257 0123456789
+258 0123456789
+259 0123456789
+260 0123456789
+261 0123456789
+262 0123456789
+263 0123456789
+264 0123456789
+265 0123456789
+266 0123456789
+267 0123456789
+268 0123456789
+269 0123456789
+270 0123456789
+271 0123456789
+272 0123456789
+273 0123456789
+274 0123456789
+275 0123456789
+276 0123456789
+277 0123456789
+278 0123456789
+279 0123456789
+280 0123456789
+281 0123456789
+282 0123456789
+283 0123456789
+284 0123456789
+285 0123456789
+286 0123456789
+287 0123456789
+288 0123456789
+289 0123456789
+290 0123456789
+291 0123456789
+292 0123456789
+293 0123456789
+294 0123456789
+295 0123456789
+296 0123456789
+297 0123456789
+298 0123456789
+299 0123456789
+300 0123456789
+301 0123456789
+302 0123456789
+303 0123456789
+304 0123456789
+305 0123456789
+306 0123456789
+307 0123456789
+308 0123456789
+309 0123456789
+310 0123456789
+311 0123456789
+312 0123456789
+313 0123456789
+314 0123456789
+315 0123456789
+316 0123456789
+317 0123456789
+318 0123456789
+319 0123456789
+320 0123456789
+321 0123456789
+322 0123456789
+323 0123456789
+324 0123456789
+325 0123456789
+326 0123456789
+327 0123456789
+328 0123456789
+329 0123456789
+330 0123456789
+331 0123456789
+332 0123456789
+333 0123456789
+334 0123456789
+335 0123456789
+336 0123456789
+337 0123456789
+338 0123456789
+339 0123456789
+340 0123456789
+341 0123456789
+342 0123456789
+343 0123456789
+344 0123456789
+345 0123456789
+346 0123456789
+347 0123456789
+348 0123456789
+349 0123456789
+350 0123456789
+351 0123456789
+352 0123456789
+353 0123456789
+354 0123456789
+355 0123456789
+356 0123456789
+357 0123456789
+358 0123456789
+359 0123456789
+360 0123456789
+361 0123456789
+362 0123456789
+363 0123456789
+364 0123456789
+365 0123456789
+366 0123456789
+367 0123456789
+368 0123456789
+369 0123456789
+370 0123456789
+371 0123456789
+372 0123456789
+373 0123456789
+374 0123456789
+375 0123456789
+376 0123456789
+377 0123456789
+378 0123456789
+379 0123456789
+380 0123456789
+381 0123456789
+382 0123456789
+383 0123456789
+384 0123456789
+385 0123456789
+386 0123456789
+387 0123456789
+388 0123456789
+389 0123456789
+390 0123456789
+391 0123456789
+392 0123456789
+393 0123456789
+394 0123456789
+395 0123456789
+396 0123456789
+397 0123456789
+398 0123456789
+399 0123456789
+400 0123456789
+401 0123456789
+402 0123456789
+403 0123456789
+404 0123456789
+405 0123456789
+406 0123456789
+407 0123456789
+408 0123456789
+409 0123456789
+410 0123456789
+411 0123456789
+412 0123456789
+413 0123456789
+414 0123456789
+415 0123456789
+416 0123456789
+417 0123456789
+418 0123456789
+419 0123456789
+420 0123456789
+421 0123456789
+422 0123456789
+423 0123456789
+424 0123456789
+425 0123456789
+426 0123456789
+427 0123456789
+428 0123456789
+429 0123456789
+430 0123456789
+431 0123456789
+432 0123456789
+433 0123456789
+434 0123456789
+435 0123456789
+436 0123456789
+437 0123456789
+438 0123456789
+439 0123456789
+440 0123456789
+441 0123456789
+442 0123456789
+443 0123456789
+444 0123456789
+445 0123456789
+446 0123456789
+447 0123456789
+448 0123456789
+449 0123456789
+450 0123456789
+451 0123456789
+452 0123456789
+453 0123456789
+454 0123456789
+455 0123456789
+456 0123456789
+457 0123456789
+458 0123456789
+459 0123456789
+460 0123456789
+461 0123456789
+462 0123456789
+463 0123456789
+464 0123456789
+465 0123456789
+466 0123456789
+467 0123456789
+468 0123456789
+469 0123456789
+470 0123456789
+471 0123456789
+472 0123456789
+473 0123456789
+474 0123456789
+475 0123456789
+476 0123456789
+477 0123456789
+478 0123456789
+479 0123456789
+480 0123456789
+481 0123456789
+482 0123456789
+483 0123456789
+484 0123456789
+485 0123456789
+486 0123456789
+487 0123456789
+488 0123456789
+489 0123456789
+490 0123456789
+491 0123456789
+492 0123456789
+493 0123456789
+494 0123456789
+495 0123456789
+496 0123456789
+497 0123456789
+498 0123456789
+499 0123456789
+500 0123456789
+501 0123456789
+502 0123456789
+503 0123456789
+504 0123456789
+505 0123456789
+506 0123456789
+507 0123456789
+508 0123456789
+509 0123456789
+510 0123456789
+511 0123456789
+512 0123456789
+513 0123456789
+514 0123456789
+515 0123456789
+516 0123456789
+517 0123456789
+518 0123456789
+519 0123456789
+520 0123456789
+521 0123456789
+522 0123456789
+523 0123456789
+524 0123456789
+525 0123456789
+526 0123456789
+527 0123456789
+528 0123456789
+529 0123456789
+530 0123456789
+531 0123456789
+532 0123456789
+533 0123456789
+534 0123456789
+535 0123456789
+536 0123456789
+537 0123456789
+538 0123456789
+539 0123456789
+540 0123456789
+541 0123456789
+542 0123456789
+543 0123456789
+544 0123456789
+545 0123456789
+546 0123456789
+547 0123456789
+548 0123456789
+549 0123456789
+550 0123456789
+551 0123456789
+552 012345678H
--- a/tests/test.9/blocks/4188
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 72
-qid.version 0
-qid.path 72
-size 26214400
-pdblkno 4187
-pqpath 71
-mtime 1665292864000000000
-mode 664
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 4189
-	1 4190
-	2 4191
-	3 4192
-	4 4193
-	5 4194
-	6 4195
-	7 4196
-	8 4197
-	9 4198
-	10 4199
-	11 4200
-	12 4201
-	13 4202
-	14 4203
-	15 4204
-	16 4205
-	17 4206
-	18 4207
-	19 4208
-	20 4209
-	21 4210
-	22 4211
-	23 4212
-	24 4213
-	25 4214
-	26 4215
-	27 4216
-	28 4217
-	29 4218
-	30 4219
-	31 4220
-indirect blocks
-	0 4222
-	1 4285
-	2 8204
-	3 0
-	4 0
-	5 0
-name 25MB.file
--- a/tests/test.9/blocks/4189
+++ /dev/null
@@ -1,38 +1,0 @@
-Tdata 72
-0 0123456789
-1 0123456789
-2 0123456789
-3 0123456789
-4 0123456789
-5 0123456789
-6 0123456789
-7 0123456789
-8 0123456789
-9 0123456789
-10 0123456789
-11 0123456789
-12 0123456789
-13 0123456789
-14 0123456789
-15 0123456789
-16 0123456789
-17 0123456789
-18 0123456789
-19 0123456789
-20 0123456789
-21 0123456789
-22 0123456789
-23 0123456789
-24 0123456789
-25 0123456789
-26 0123456789
-27 0123456789
-28 0123456789
-29 0123456789
-30 0123456789
-31 0123456789
-32 0123456789
-33 0123456789
-34 0123456789
-35 0123456789
-36 012345H
--- a/tests/test.9/blocks/4221
+++ /dev/null
@@ -1,33 +1,0 @@
-Tdata 72
-123456789
-1076 0123456789
-1077 0123456789
-1078 0123456789
-1079 0123456789
-1080 0123456789
-1081 0123456789
-1082 0123456789
-1083 0123456789
-1084 0123456789
-1085 0123456789
-1086 0123456789
-1087 0123456789
-1088 0123456789
-1089 0123456789
-1090 0123456789
-1091 0123456789
-1092 0123456789
-1093 0123456789
-1094 0123456789
-1095 0123456789
-1096 0123456789
-1097 0123456789
-1098 0123456789
-1099 0123456789
-1100 0123456789
-1101 0123456789
-1102 0123456789
-1103 0123456789
-1104 0123456789
-1105 0123456789
-1106 01234567H
--- a/tests/test.9/blocks/4222
+++ /dev/null
@@ -1,63 +1,0 @@
-Tind0 72
-	0 4221
-	1 4223
-	2 4224
-	3 4225
-	4 4226
-	5 4227
-	6 4228
-	7 4229
-	8 4230
-	9 4231
-	10 4232
-	11 4233
-	12 4234
-	13 4235
-	14 4236
-	15 4237
-	16 4238
-	17 4239
-	18 4240
-	19 4241
-	20 4242
-	21 4243
-	22 4244
-	23 4245
-	24 4246
-	25 4247
-	26 4248
-	27 4249
-	28 4250
-	29 4251
-	30 4252
-	31 4253
-	32 4254
-	33 4255
-	34 4256
-	35 4257
-	36 4258
-	37 4259
-	38 4260
-	39 4261
-	40 4262
-	41 4263
-	42 4264
-	43 4265
-	44 4266
-	45 4267
-	46 4268
-	47 4269
-	48 4270
-	49 4271
-	50 4272
-	51 4273
-	52 4274
-	53 4275
-	54 4276
-	55 4277
-	56 4278
-	57 4279
-	58 4280
-	59 4281
-	60 4282
-	61 4283
--- /dev/null
+++ b/tests/test.9/blocks/4580
@@ -1,0 +1,484 @@
+Tdata 72
+89
+16057 0123456789
+16058 0123456789
+16059 0123456789
+16060 0123456789
+16061 0123456789
+16062 0123456789
+16063 0123456789
+16064 0123456789
+16065 0123456789
+16066 0123456789
+16067 0123456789
+16068 0123456789
+16069 0123456789
+16070 0123456789
+16071 0123456789
+16072 0123456789
+16073 0123456789
+16074 0123456789
+16075 0123456789
+16076 0123456789
+16077 0123456789
+16078 0123456789
+16079 0123456789
+16080 0123456789
+16081 0123456789
+16082 0123456789
+16083 0123456789
+16084 0123456789
+16085 0123456789
+16086 0123456789
+16087 0123456789
+16088 0123456789
+16089 0123456789
+16090 0123456789
+16091 0123456789
+16092 0123456789
+16093 0123456789
+16094 0123456789
+16095 0123456789
+16096 0123456789
+16097 0123456789
+16098 0123456789
+16099 0123456789
+16100 0123456789
+16101 0123456789
+16102 0123456789
+16103 0123456789
+16104 0123456789
+16105 0123456789
+16106 0123456789
+16107 0123456789
+16108 0123456789
+16109 0123456789
+16110 0123456789
+16111 0123456789
+16112 0123456789
+16113 0123456789
+16114 0123456789
+16115 0123456789
+16116 0123456789
+16117 0123456789
+16118 0123456789
+16119 0123456789
+16120 0123456789
+16121 0123456789
+16122 0123456789
+16123 0123456789
+16124 0123456789
+16125 0123456789
+16126 0123456789
+16127 0123456789
+16128 0123456789
+16129 0123456789
+16130 0123456789
+16131 0123456789
+16132 0123456789
+16133 0123456789
+16134 0123456789
+16135 0123456789
+16136 0123456789
+16137 0123456789
+16138 0123456789
+16139 0123456789
+16140 0123456789
+16141 0123456789
+16142 0123456789
+16143 0123456789
+16144 0123456789
+16145 0123456789
+16146 0123456789
+16147 0123456789
+16148 0123456789
+16149 0123456789
+16150 0123456789
+16151 0123456789
+16152 0123456789
+16153 0123456789
+16154 0123456789
+16155 0123456789
+16156 0123456789
+16157 0123456789
+16158 0123456789
+16159 0123456789
+16160 0123456789
+16161 0123456789
+16162 0123456789
+16163 0123456789
+16164 0123456789
+16165 0123456789
+16166 0123456789
+16167 0123456789
+16168 0123456789
+16169 0123456789
+16170 0123456789
+16171 0123456789
+16172 0123456789
+16173 0123456789
+16174 0123456789
+16175 0123456789
+16176 0123456789
+16177 0123456789
+16178 0123456789
+16179 0123456789
+16180 0123456789
+16181 0123456789
+16182 0123456789
+16183 0123456789
+16184 0123456789
+16185 0123456789
+16186 0123456789
+16187 0123456789
+16188 0123456789
+16189 0123456789
+16190 0123456789
+16191 0123456789
+16192 0123456789
+16193 0123456789
+16194 0123456789
+16195 0123456789
+16196 0123456789
+16197 0123456789
+16198 0123456789
+16199 0123456789
+16200 0123456789
+16201 0123456789
+16202 0123456789
+16203 0123456789
+16204 0123456789
+16205 0123456789
+16206 0123456789
+16207 0123456789
+16208 0123456789
+16209 0123456789
+16210 0123456789
+16211 0123456789
+16212 0123456789
+16213 0123456789
+16214 0123456789
+16215 0123456789
+16216 0123456789
+16217 0123456789
+16218 0123456789
+16219 0123456789
+16220 0123456789
+16221 0123456789
+16222 0123456789
+16223 0123456789
+16224 0123456789
+16225 0123456789
+16226 0123456789
+16227 0123456789
+16228 0123456789
+16229 0123456789
+16230 0123456789
+16231 0123456789
+16232 0123456789
+16233 0123456789
+16234 0123456789
+16235 0123456789
+16236 0123456789
+16237 0123456789
+16238 0123456789
+16239 0123456789
+16240 0123456789
+16241 0123456789
+16242 0123456789
+16243 0123456789
+16244 0123456789
+16245 0123456789
+16246 0123456789
+16247 0123456789
+16248 0123456789
+16249 0123456789
+16250 0123456789
+16251 0123456789
+16252 0123456789
+16253 0123456789
+16254 0123456789
+16255 0123456789
+16256 0123456789
+16257 0123456789
+16258 0123456789
+16259 0123456789
+16260 0123456789
+16261 0123456789
+16262 0123456789
+16263 0123456789
+16264 0123456789
+16265 0123456789
+16266 0123456789
+16267 0123456789
+16268 0123456789
+16269 0123456789
+16270 0123456789
+16271 0123456789
+16272 0123456789
+16273 0123456789
+16274 0123456789
+16275 0123456789
+16276 0123456789
+16277 0123456789
+16278 0123456789
+16279 0123456789
+16280 0123456789
+16281 0123456789
+16282 0123456789
+16283 0123456789
+16284 0123456789
+16285 0123456789
+16286 0123456789
+16287 0123456789
+16288 0123456789
+16289 0123456789
+16290 0123456789
+16291 0123456789
+16292 0123456789
+16293 0123456789
+16294 0123456789
+16295 0123456789
+16296 0123456789
+16297 0123456789
+16298 0123456789
+16299 0123456789
+16300 0123456789
+16301 0123456789
+16302 0123456789
+16303 0123456789
+16304 0123456789
+16305 0123456789
+16306 0123456789
+16307 0123456789
+16308 0123456789
+16309 0123456789
+16310 0123456789
+16311 0123456789
+16312 0123456789
+16313 0123456789
+16314 0123456789
+16315 0123456789
+16316 0123456789
+16317 0123456789
+16318 0123456789
+16319 0123456789
+16320 0123456789
+16321 0123456789
+16322 0123456789
+16323 0123456789
+16324 0123456789
+16325 0123456789
+16326 0123456789
+16327 0123456789
+16328 0123456789
+16329 0123456789
+16330 0123456789
+16331 0123456789
+16332 0123456789
+16333 0123456789
+16334 0123456789
+16335 0123456789
+16336 0123456789
+16337 0123456789
+16338 0123456789
+16339 0123456789
+16340 0123456789
+16341 0123456789
+16342 0123456789
+16343 0123456789
+16344 0123456789
+16345 0123456789
+16346 0123456789
+16347 0123456789
+16348 0123456789
+16349 0123456789
+16350 0123456789
+16351 0123456789
+16352 0123456789
+16353 0123456789
+16354 0123456789
+16355 0123456789
+16356 0123456789
+16357 0123456789
+16358 0123456789
+16359 0123456789
+16360 0123456789
+16361 0123456789
+16362 0123456789
+16363 0123456789
+16364 0123456789
+16365 0123456789
+16366 0123456789
+16367 0123456789
+16368 0123456789
+16369 0123456789
+16370 0123456789
+16371 0123456789
+16372 0123456789
+16373 0123456789
+16374 0123456789
+16375 0123456789
+16376 0123456789
+16377 0123456789
+16378 0123456789
+16379 0123456789
+16380 0123456789
+16381 0123456789
+16382 0123456789
+16383 0123456789
+16384 0123456789
+16385 0123456789
+16386 0123456789
+16387 0123456789
+16388 0123456789
+16389 0123456789
+16390 0123456789
+16391 0123456789
+16392 0123456789
+16393 0123456789
+16394 0123456789
+16395 0123456789
+16396 0123456789
+16397 0123456789
+16398 0123456789
+16399 0123456789
+16400 0123456789
+16401 0123456789
+16402 0123456789
+16403 0123456789
+16404 0123456789
+16405 0123456789
+16406 0123456789
+16407 0123456789
+16408 0123456789
+16409 0123456789
+16410 0123456789
+16411 0123456789
+16412 0123456789
+16413 0123456789
+16414 0123456789
+16415 0123456789
+16416 0123456789
+16417 0123456789
+16418 0123456789
+16419 0123456789
+16420 0123456789
+16421 0123456789
+16422 0123456789
+16423 0123456789
+16424 0123456789
+16425 0123456789
+16426 0123456789
+16427 0123456789
+16428 0123456789
+16429 0123456789
+16430 0123456789
+16431 0123456789
+16432 0123456789
+16433 0123456789
+16434 0123456789
+16435 0123456789
+16436 0123456789
+16437 0123456789
+16438 0123456789
+16439 0123456789
+16440 0123456789
+16441 0123456789
+16442 0123456789
+16443 0123456789
+16444 0123456789
+16445 0123456789
+16446 0123456789
+16447 0123456789
+16448 0123456789
+16449 0123456789
+16450 0123456789
+16451 0123456789
+16452 0123456789
+16453 0123456789
+16454 0123456789
+16455 0123456789
+16456 0123456789
+16457 0123456789
+16458 0123456789
+16459 0123456789
+16460 0123456789
+16461 0123456789
+16462 0123456789
+16463 0123456789
+16464 0123456789
+16465 0123456789
+16466 0123456789
+16467 0123456789
+16468 0123456789
+16469 0123456789
+16470 0123456789
+16471 0123456789
+16472 0123456789
+16473 0123456789
+16474 0123456789
+16475 0123456789
+16476 0123456789
+16477 0123456789
+16478 0123456789
+16479 0123456789
+16480 0123456789
+16481 0123456789
+16482 0123456789
+16483 0123456789
+16484 0123456789
+16485 0123456789
+16486 0123456789
+16487 0123456789
+16488 0123456789
+16489 0123456789
+16490 0123456789
+16491 0123456789
+16492 0123456789
+16493 0123456789
+16494 0123456789
+16495 0123456789
+16496 0123456789
+16497 0123456789
+16498 0123456789
+16499 0123456789
+16500 0123456789
+16501 0123456789
+16502 0123456789
+16503 0123456789
+16504 0123456789
+16505 0123456789
+16506 0123456789
+16507 0123456789
+16508 0123456789
+16509 0123456789
+16510 0123456789
+16511 0123456789
+16512 0123456789
+16513 0123456789
+16514 0123456789
+16515 0123456789
+16516 0123456789
+16517 0123456789
+16518 0123456789
+16519 0123456789
+16520 0123456789
+16521 0123456789
+16522 0123456789
+16523 0123456789
+16524 0123456789
+16525 0123456789
+16526 0123456789
+16527 0123456789
+16528 0123456789
+16529 0123456789
+16530 0123456789
+16531 0123456789
+16532 0123456789
+16533 0123456789
+16534 0123456789
+16535 0123456789
+16536 0123456789
+16537 0123456789
+165H
--- /dev/null
+++ b/tests/test.9/blocks/4596
@@ -1,0 +1,1023 @@
+Tind0 72
+	0 4580
+	1 4612
+	2 4628
+	3 4644
+	4 4660
+	5 4676
+	6 4692
+	7 4708
+	8 4724
+	9 4740
+	10 4756
+	11 4772
+	12 4788
+	13 4804
+	14 4820
+	15 4836
+	16 4852
+	17 4868
+	18 4884
+	19 4900
+	20 4916
+	21 4932
+	22 4948
+	23 4964
+	24 4980
+	25 4996
+	26 5012
+	27 5028
+	28 5044
+	29 5060
+	30 5076
+	31 5092
+	32 5108
+	33 5124
+	34 5140
+	35 5156
+	36 5172
+	37 5188
+	38 5204
+	39 5220
+	40 5236
+	41 5252
+	42 5268
+	43 5284
+	44 5300
+	45 5316
+	46 5332
+	47 5348
+	48 5364
+	49 5380
+	50 5396
+	51 5412
+	52 5428
+	53 5444
+	54 5460
+	55 5476
+	56 5492
+	57 5508
+	58 5524
+	59 5540
+	60 5556
+	61 5572
+	62 5588
+	63 5604
+	64 5620
+	65 5636
+	66 5652
+	67 5668
+	68 5684
+	69 5700
+	70 5716
+	71 5732
+	72 5748
+	73 5764
+	74 5780
+	75 5796
+	76 5812
+	77 5828
+	78 5844
+	79 5860
+	80 5876
+	81 5892
+	82 5908
+	83 5924
+	84 5940
+	85 5956
+	86 5972
+	87 5988
+	88 6004
+	89 6020
+	90 6036
+	91 6052
+	92 6068
+	93 6084
+	94 6100
+	95 6116
+	96 6132
+	97 6148
+	98 6164
+	99 6180
+	100 6196
+	101 6212
+	102 6228
+	103 6244
+	104 6260
+	105 6276
+	106 6292
+	107 6308
+	108 6324
+	109 6340
+	110 6356
+	111 6372
+	112 6388
+	113 6404
+	114 6420
+	115 6436
+	116 6452
+	117 6468
+	118 6484
+	119 6500
+	120 6516
+	121 6532
+	122 6548
+	123 6564
+	124 6580
+	125 6596
+	126 6612
+	127 6628
+	128 6644
+	129 6660
+	130 6676
+	131 6692
+	132 6708
+	133 6724
+	134 6740
+	135 6756
+	136 6772
+	137 6788
+	138 6804
+	139 6820
+	140 6836
+	141 6852
+	142 6868
+	143 6884
+	144 6900
+	145 6916
+	146 6932
+	147 6948
+	148 6964
+	149 6980
+	150 6996
+	151 7012
+	152 7028
+	153 7044
+	154 7060
+	155 7076
+	156 7092
+	157 7108
+	158 7124
+	159 7140
+	160 7156
+	161 7172
+	162 7188
+	163 7204
+	164 7220
+	165 7236
+	166 7252
+	167 7268
+	168 7284
+	169 7300
+	170 7316
+	171 7332
+	172 7348
+	173 7364
+	174 7380
+	175 7396
+	176 7412
+	177 7428
+	178 7444
+	179 7460
+	180 7476
+	181 7492
+	182 7508
+	183 7524
+	184 7540
+	185 7556
+	186 7572
+	187 7588
+	188 7604
+	189 7620
+	190 7636
+	191 7652
+	192 7668
+	193 7684
+	194 7700
+	195 7716
+	196 7732
+	197 7748
+	198 7764
+	199 7780
+	200 7796
+	201 7812
+	202 7828
+	203 7844
+	204 7860
+	205 7876
+	206 7892
+	207 7908
+	208 7924
+	209 7940
+	210 7956
+	211 7972
+	212 7988
+	213 8004
+	214 8020
+	215 8036
+	216 8052
+	217 8068
+	218 8084
+	219 8100
+	220 8116
+	221 8132
+	222 8148
+	223 8164
+	224 8180
+	225 8196
+	226 8212
+	227 8228
+	228 8244
+	229 8260
+	230 8276
+	231 8292
+	232 8308
+	233 8324
+	234 8340
+	235 8356
+	236 8372
+	237 8388
+	238 8404
+	239 8420
+	240 8436
+	241 8452
+	242 8468
+	243 8484
+	244 8500
+	245 8516
+	246 8532
+	247 8548
+	248 8564
+	249 8580
+	250 8596
+	251 8612
+	252 8628
+	253 8644
+	254 8660
+	255 8676
+	256 8692
+	257 8708
+	258 8724
+	259 8740
+	260 8756
+	261 8772
+	262 8788
+	263 8804
+	264 8820
+	265 8836
+	266 8852
+	267 8868
+	268 8884
+	269 8900
+	270 8916
+	271 8932
+	272 8948
+	273 8964
+	274 8980
+	275 8996
+	276 9012
+	277 9028
+	278 9044
+	279 9060
+	280 9076
+	281 9092
+	282 9108
+	283 9124
+	284 9140
+	285 9156
+	286 9172
+	287 9188
+	288 9204
+	289 9220
+	290 9236
+	291 9252
+	292 9268
+	293 9284
+	294 9300
+	295 9316
+	296 9332
+	297 9348
+	298 9364
+	299 9380
+	300 9396
+	301 9412
+	302 9428
+	303 9444
+	304 9460
+	305 9476
+	306 9492
+	307 9508
+	308 9524
+	309 9540
+	310 9556
+	311 9572
+	312 9588
+	313 9604
+	314 9620
+	315 9636
+	316 9652
+	317 9668
+	318 9684
+	319 9700
+	320 9716
+	321 9732
+	322 9748
+	323 9764
+	324 9780
+	325 9796
+	326 9812
+	327 9828
+	328 9844
+	329 9860
+	330 9876
+	331 9892
+	332 9908
+	333 9924
+	334 9940
+	335 9956
+	336 9972
+	337 9988
+	338 10004
+	339 10020
+	340 10036
+	341 10052
+	342 10068
+	343 10084
+	344 10100
+	345 10116
+	346 10132
+	347 10148
+	348 10164
+	349 10180
+	350 10196
+	351 10212
+	352 10228
+	353 10244
+	354 10260
+	355 10276
+	356 10292
+	357 10308
+	358 10324
+	359 10340
+	360 10356
+	361 10372
+	362 10388
+	363 10404
+	364 10420
+	365 10436
+	366 10452
+	367 10468
+	368 10484
+	369 10500
+	370 10516
+	371 10532
+	372 10548
+	373 10564
+	374 10580
+	375 10596
+	376 10612
+	377 10628
+	378 10644
+	379 10660
+	380 10676
+	381 10692
+	382 10708
+	383 10724
+	384 10740
+	385 10756
+	386 10772
+	387 10788
+	388 10804
+	389 10820
+	390 10836
+	391 10852
+	392 10868
+	393 10884
+	394 10900
+	395 10916
+	396 10932
+	397 10948
+	398 10964
+	399 10980
+	400 10996
+	401 11012
+	402 11028
+	403 11044
+	404 11060
+	405 11076
+	406 11092
+	407 11108
+	408 11124
+	409 11140
+	410 11156
+	411 11172
+	412 11188
+	413 11204
+	414 11220
+	415 11236
+	416 11252
+	417 11268
+	418 11284
+	419 11300
+	420 11316
+	421 11332
+	422 11348
+	423 11364
+	424 11380
+	425 11396
+	426 11412
+	427 11428
+	428 11444
+	429 11460
+	430 11476
+	431 11492
+	432 11508
+	433 11524
+	434 11540
+	435 11556
+	436 11572
+	437 11588
+	438 11604
+	439 11620
+	440 11636
+	441 11652
+	442 11668
+	443 11684
+	444 11700
+	445 11716
+	446 11732
+	447 11748
+	448 11764
+	449 11780
+	450 11796
+	451 11812
+	452 11828
+	453 11844
+	454 11860
+	455 11876
+	456 11892
+	457 11908
+	458 11924
+	459 11940
+	460 11956
+	461 11972
+	462 11988
+	463 12004
+	464 12020
+	465 12036
+	466 12052
+	467 12068
+	468 12084
+	469 12100
+	470 12116
+	471 12132
+	472 12148
+	473 12164
+	474 12180
+	475 12196
+	476 12212
+	477 12228
+	478 12244
+	479 12260
+	480 12276
+	481 12292
+	482 12308
+	483 12324
+	484 12340
+	485 12356
+	486 12372
+	487 12388
+	488 12404
+	489 12420
+	490 12436
+	491 12452
+	492 12468
+	493 12484
+	494 12500
+	495 12516
+	496 12532
+	497 12548
+	498 12564
+	499 12580
+	500 12596
+	501 12612
+	502 12628
+	503 12644
+	504 12660
+	505 12676
+	506 12692
+	507 12708
+	508 12724
+	509 12740
+	510 12756
+	511 12772
+	512 12788
+	513 12804
+	514 12820
+	515 12836
+	516 12852
+	517 12868
+	518 12884
+	519 12900
+	520 12916
+	521 12932
+	522 12948
+	523 12964
+	524 12980
+	525 12996
+	526 13012
+	527 13028
+	528 13044
+	529 13060
+	530 13076
+	531 13092
+	532 13108
+	533 13124
+	534 13140
+	535 13156
+	536 13172
+	537 13188
+	538 13204
+	539 13220
+	540 13236
+	541 13252
+	542 13268
+	543 13284
+	544 13300
+	545 13316
+	546 13332
+	547 13348
+	548 13364
+	549 13380
+	550 13396
+	551 13412
+	552 13428
+	553 13444
+	554 13460
+	555 13476
+	556 13492
+	557 13508
+	558 13524
+	559 13540
+	560 13556
+	561 13572
+	562 13588
+	563 13604
+	564 13620
+	565 13636
+	566 13652
+	567 13668
+	568 13684
+	569 13700
+	570 13716
+	571 13732
+	572 13748
+	573 13764
+	574 13780
+	575 13796
+	576 13812
+	577 13828
+	578 13844
+	579 13860
+	580 13876
+	581 13892
+	582 13908
+	583 13924
+	584 13940
+	585 13956
+	586 13972
+	587 13988
+	588 14004
+	589 14020
+	590 14036
+	591 14052
+	592 14068
+	593 14084
+	594 14100
+	595 14116
+	596 14132
+	597 14148
+	598 14164
+	599 14180
+	600 14196
+	601 14212
+	602 14228
+	603 14244
+	604 14260
+	605 14276
+	606 14292
+	607 14308
+	608 14324
+	609 14340
+	610 14356
+	611 14372
+	612 14388
+	613 14404
+	614 14420
+	615 14436
+	616 14452
+	617 14468
+	618 14484
+	619 14500
+	620 14516
+	621 14532
+	622 14548
+	623 14564
+	624 14580
+	625 14596
+	626 14612
+	627 14628
+	628 14644
+	629 14660
+	630 14676
+	631 14692
+	632 14708
+	633 14724
+	634 14740
+	635 14756
+	636 14772
+	637 14788
+	638 14804
+	639 14820
+	640 14836
+	641 14852
+	642 14868
+	643 14884
+	644 14900
+	645 14916
+	646 14932
+	647 14948
+	648 14964
+	649 14980
+	650 14996
+	651 15012
+	652 15028
+	653 15044
+	654 15060
+	655 15076
+	656 15092
+	657 15108
+	658 15124
+	659 15140
+	660 15156
+	661 15172
+	662 15188
+	663 15204
+	664 15220
+	665 15236
+	666 15252
+	667 15268
+	668 15284
+	669 15300
+	670 15316
+	671 15332
+	672 15348
+	673 15364
+	674 15380
+	675 15396
+	676 15412
+	677 15428
+	678 15444
+	679 15460
+	680 15476
+	681 15492
+	682 15508
+	683 15524
+	684 15540
+	685 15556
+	686 15572
+	687 15588
+	688 15604
+	689 15620
+	690 15636
+	691 15652
+	692 15668
+	693 15684
+	694 15700
+	695 15716
+	696 15732
+	697 15748
+	698 15764
+	699 15780
+	700 15796
+	701 15812
+	702 15828
+	703 15844
+	704 15860
+	705 15876
+	706 15892
+	707 15908
+	708 15924
+	709 15940
+	710 15956
+	711 15972
+	712 15988
+	713 16004
+	714 16020
+	715 16036
+	716 16052
+	717 16068
+	718 16084
+	719 16100
+	720 16116
+	721 16132
+	722 16148
+	723 16164
+	724 16180
+	725 16196
+	726 16212
+	727 16228
+	728 16244
+	729 16260
+	730 16276
+	731 16292
+	732 16308
+	733 16324
+	734 16340
+	735 16356
+	736 16372
+	737 16388
+	738 16404
+	739 16420
+	740 16436
+	741 16452
+	742 16468
+	743 16484
+	744 16500
+	745 16516
+	746 16532
+	747 16548
+	748 16564
+	749 16580
+	750 16596
+	751 16612
+	752 16628
+	753 16644
+	754 16660
+	755 16676
+	756 16692
+	757 16708
+	758 16724
+	759 16740
+	760 16756
+	761 16772
+	762 16788
+	763 16804
+	764 16820
+	765 16836
+	766 16852
+	767 16868
+	768 16884
+	769 16900
+	770 16916
+	771 16932
+	772 16948
+	773 16964
+	774 16980
+	775 16996
+	776 17012
+	777 17028
+	778 17044
+	779 17060
+	780 17076
+	781 17092
+	782 17108
+	783 17124
+	784 17140
+	785 17156
+	786 17172
+	787 17188
+	788 17204
+	789 17220
+	790 17236
+	791 17252
+	792 17268
+	793 17284
+	794 17300
+	795 17316
+	796 17332
+	797 17348
+	798 17364
+	799 17380
+	800 17396
+	801 17412
+	802 17428
+	803 17444
+	804 17460
+	805 17476
+	806 17492
+	807 17508
+	808 17524
+	809 17540
+	810 17556
+	811 17572
+	812 17588
+	813 17604
+	814 17620
+	815 17636
+	816 17652
+	817 17668
+	818 17684
+	819 17700
+	820 17716
+	821 17732
+	822 17748
+	823 17764
+	824 17780
+	825 17796
+	826 17812
+	827 17828
+	828 17844
+	829 17860
+	830 17876
+	831 17892
+	832 17908
+	833 17924
+	834 17940
+	835 17956
+	836 17972
+	837 17988
+	838 18004
+	839 18020
+	840 18036
+	841 18052
+	842 18068
+	843 18084
+	844 18100
+	845 18116
+	846 18132
+	847 18148
+	848 18164
+	849 18180
+	850 18196
+	851 18212
+	852 18228
+	853 18244
+	854 18260
+	855 18276
+	856 18292
+	857 18308
+	858 18324
+	859 18340
+	860 18356
+	861 18372
+	862 18388
+	863 18404
+	864 18420
+	865 18436
+	866 18452
+	867 18468
+	868 18484
+	869 18500
+	870 18516
+	871 18532
+	872 18548
+	873 18564
+	874 18580
+	875 18596
+	876 18612
+	877 18628
+	878 18644
+	879 18660
+	880 18676
+	881 18692
+	882 18708
+	883 18724
+	884 18740
+	885 18756
+	886 18772
+	887 18788
+	888 18804
+	889 18820
+	890 18836
+	891 18852
+	892 18868
+	893 18884
+	894 18900
+	895 18916
+	896 18932
+	897 18948
+	898 18964
+	899 18980
+	900 18996
+	901 19012
+	902 19028
+	903 19044
+	904 19060
+	905 19076
+	906 19092
+	907 19108
+	908 19124
+	909 19140
+	910 19156
+	911 19172
+	912 19188
+	913 19204
+	914 19220
+	915 19236
+	916 19252
+	917 19268
+	918 19284
+	919 19300
+	920 19316
+	921 19332
+	922 19348
+	923 19364
+	924 19380
+	925 19396
+	926 19412
+	927 19428
+	928 19444
+	929 19460
+	930 19476
+	931 19492
+	932 19508
+	933 19524
+	934 19540
+	935 19556
+	936 19572
+	937 19588
+	938 19604
+	939 19620
+	940 19636
+	941 19652
+	942 19668
+	943 19684
+	944 19700
+	945 19716
+	946 19732
+	947 19748
+	948 19764
+	949 19780
+	950 19796
+	951 19812
+	952 19828
+	953 19844
+	954 19860
+	955 19876
+	956 19892
+	957 19908
+	958 19924
+	959 19940
+	960 19956
+	961 19972
+	962 19988
+	963 20004
+	964 20020
+	965 20036
+	966 20052
+	967 20068
+	968 20084
+	969 20100
+	970 20116
+	971 20132
+	972 20148
+	973 20164
+	974 20180
+	975 20196
+	976 20212
+	977 20228
+	978 20244
+	979 20260
+	980 20276
+	981 20292
+	982 20308
+	983 20324
+	984 20340
+	985 20356
+	986 20372
+	987 20388
+	988 20404
+	989 20420
+	990 20436
+	991 20452
+	992 20468
+	993 20484
+	994 20500
+	995 20516
+	996 20532
+	997 20548
+	998 20564
+	999 20580
+	1000 20596
+	1001 20612
+	1002 20628
+	1003 20644
+	1004 20660
+	1005 20676
+	1006 20692
+	1007 20708
+	1008 20724
+	1009 20740
+	1010 20756
+	1011 20772
+	1012 20788
+	1013 20804
+	1014 20820
+	1015 20836
+	1016 20852
+	1017 20868
+	1018 20884
+	1019 20900
+	1020 20916
+	1021 20932
--- a/tests/test.9/blocks/5
+++ b/tests/test.9/blocks/5
@@ -1,21 +1,22 @@
 Tdentry 5
-qid.version 0
-qid.path 5
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668272238680059237
-mode 444
+name bkp
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668653022095179515
+qid.path 5
+qid.version 0
+mode 20000000777
 direct blocks
-	0 2
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
+	0 131071
+	1 131070
+	2 131069
+	3 65540
+	4 65539
+	5 65538
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super
--- a/tests/test.9/blocks/6
+++ b/tests/test.9/blocks/6
@@ -1,52 +1,18 @@
 Tdentry 6
-qid.version 0
-qid.path 6
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668272238680045777
-mode 20000000777
+name inuse
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 7
-	1 8
-	2 9
-	3 10
-	4 11
-	5 12
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name bkp
+size 95
+pdblkno 4
+pqpath 4
+mtime 1668653022095186233
+qid.path 6
+qid.version 0
+mode 444
+-1:adm:adm:glenda
+0:none:adm:
+9999:noworld::
+10000:sys::
+10001:upas:upas:
+10006:glenda:glenda:
--- a/tests/test.9/blocks/7
+++ b/tests/test.9/blocks/7
@@ -1,52 +1,14 @@
 Tdentry 7
-qid.version 0
-qid.path 7
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668272238680065881
-mode 444
+name frees
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 131071
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name config.0
+size 38
+pdblkno 3
+pqpath 3
+mtime 1668653033907771135
+qid.path 7
+qid.version 0
+mode 444
+55412 65537 10126
+65541 131068 65528
--- a/tests/test.9/blocks/8
+++ b/tests/test.9/blocks/8
@@ -1,52 +1,12 @@
 Tdentry 8
-qid.version 0
-qid.path 8
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668272238680068050
-mode 444
+name ctl
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 131070
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name super.0
+size 0
+pdblkno 3
+pqpath 3
+mtime 1668653022095194966
+qid.path 8
+qid.version 0
+mode 444
--- a/tests/test.9/blocks/9
+++ b/tests/test.9/blocks/9
@@ -1,52 +1,12 @@
 Tdentry 9
-qid.version 0
-qid.path 9
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668272238680070153
-mode 444
+name staging
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 131069
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.0
+size 0
+pdblkno 4
+pqpath 4
+mtime 1668653022095207450
+qid.path 9
+qid.version 0
+mode 444
--- a/tests/test.b/blocks/0
+++ b/tests/test.b/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668653822312926390
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.b/blocks/1
+++ b/tests/test.b/blocks/1
@@ -1,7 +1,18 @@
-Tdata 4
+Tdentry 1
+name config
+uid -1
+gid -1
+muid -1
+size 110
+pdblkno 3
+pqpath 3
+mtime 1668653822312986265
+qid.path 1
+qid.version 0
+mode 444
 size 16384
 nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
 service test.b
--- a/tests/test.b/blocks/10
+++ b/tests/test.b/blocks/10
@@ -1,17 +1,18 @@
 Tdentry 10
-qid.version 0
-qid.path 10
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668273250516788879
-mode 444
+name /
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 0
+pqpath 0
+mtime 1668653822312984115
+qid.path 10
+qid.version 0
+mode 20000000777
 direct blocks
-	0 25
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config.1
--- a/tests/test.b/blocks/11
+++ b/tests/test.b/blocks/11
@@ -1,16 +1,17 @@
-Tdentry 11
-qid.version 0
-qid.path 11
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668273250516792051
-mode 444
-uid -1
+Tdentry 64
+name dir1
+uid 10006
 gid -1
-muid -1
+muid 10006
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668653823447016201
+qid.path 64
+qid.version 0
+mode 20000000777
 direct blocks
-	0 24
+	0 12
 	1 0
 	2 0
 	3 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super.1
--- a/tests/test.b/blocks/12
+++ b/tests/test.b/blocks/12
@@ -1,52 +1,13 @@
-Tdentry 12
-qid.version 0
-qid.path 12
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668273250516794651
-mode 444
-uid -1
+Tdentry 65
+name file1
+uid 10006
 gid -1
-muid -1
-direct blocks
-	0 23
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.1
+muid 10006
+size 5
+pdblkno 11
+pqpath 64
+mtime 1668653823448861420
+qid.path 65
+qid.version 0
+mode 666
+test
--- a/tests/test.b/blocks/13
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 13
-qid.version 0
-qid.path 13
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668273250516758385
-mode 20000000777
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 14
-	1 18
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name users
--- a/tests/test.b/blocks/14
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 14
-qid.version 0
-qid.path 14
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668273250516796997
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 15
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name inuse
--- a/tests/test.b/blocks/15
+++ /dev/null
@@ -1,7 +1,0 @@
-Tdata 14
--1:adm:adm:glenda
-0:none:adm:
-9999:noworld::
-10000:sys::
-10001:upas:upas:
-10006:glenda:glenda:
--- a/tests/test.b/blocks/16
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 16
-qid.version 0
-qid.path 16
-size 9
-pdblkno 3
-pqpath 3
-mtime 1668273252660757249
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 26
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name frees
--- a/tests/test.b/blocks/17
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 17
-qid.version 0
-qid.path 17
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668273250516764572
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name ctl
--- a/tests/test.b/blocks/18
+++ b/tests/test.b/blocks/18
@@ -1,17 +1,18 @@
-Tdentry 18
-qid.version 0
-qid.path 18
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668273250516803405
-mode 444
+Tdentry 17
+name root.1
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653823447036742
+qid.path 17
+qid.version 0
+mode 444
 direct blocks
-	0 0
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name staging
--- a/tests/test.b/blocks/19
+++ b/tests/test.b/blocks/19
@@ -1,52 +1,14 @@
-Tdentry 19
-qid.version 0
-qid.path 19
-size 0
-pdblkno 0
-pqpath 0
-mtime 1668273250516807688
-mode 20000000777
+Tdentry 16
+name super.1
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 3
-	1 20
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name /
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653823452807386
+qid.path 16
+qid.version 0
+mode 444
+qidgen 66
+fsok 1
--- a/tests/test.b/blocks/2
+++ b/tests/test.b/blocks/2
@@ -1,6 +1,14 @@
-Tdata 5
-start 0
-tfree 0
+Tdentry 2
+name super
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668653822312815022
+qid.path 2
+qid.version 0
+mode 444
 qidgen 66
-frees 0
 fsok 1
--- a/tests/test.b/blocks/20
+++ b/tests/test.b/blocks/20
@@ -1,52 +1,18 @@
-Tdentry 64
-qid.version 0
-qid.path 64
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668273251654806247
-mode 20000000777
-uid 10006
+Tdentry 15
+name config.1
+uid -1
 gid -1
-muid 10006
-direct blocks
-	0 21
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name dir1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653822313018894
+qid.path 15
+qid.version 0
+mode 444
+size 16384
+nblocks 32
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
+service test.b
--- a/tests/test.b/blocks/21
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 65
-qid.version 0
-qid.path 65
-size 5
-pdblkno 20
-pqpath 64
-mtime 1668273251656938401
-mode 666
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 22
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name file1
--- a/tests/test.b/blocks/22
+++ /dev/null
@@ -1,2 +1,0 @@
-Tdata 65
-test
--- a/tests/test.b/blocks/23
+++ /dev/null
@@ -1,1 +1,0 @@
-Tdata 12
--- a/tests/test.b/blocks/24
+++ /dev/null
@@ -1,6 +1,0 @@
-Tdata 11
-start 0
-tfree 0
-qidgen 66
-frees 0
-fsok 1
--- a/tests/test.b/blocks/29
+++ b/tests/test.b/blocks/29
@@ -1,1 +1,49 @@
-Tdata 9
+Tdentry 14
+name root.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653823447035131
+qid.path 14
+qid.version 0
+mode 444
+direct blocks
+	0 3
+	1 11
+	2 0
+	3 0
+	4 0
+	5 0
+	6 0
+	7 0
+	8 0
+	9 0
+	10 0
+	11 0
+	12 0
+	13 0
+	14 0
+	15 0
+	16 0
+	17 0
+	18 0
+	19 0
+	20 0
+	21 0
+	22 0
+	23 0
+	24 0
+	25 0
+	26 0
+	27 0
+	28 0
+	29 0
+	30 0
+	31 0
+indirect blocks
+	0 0
+	1 0
+	2 0
--- a/tests/test.b/blocks/3
+++ b/tests/test.b/blocks/3
@@ -1,21 +1,22 @@
 Tdentry 3
-qid.version 0
-qid.path 3
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668273250516740825
-mode 20000000777
+name adm
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668653822312972094
+qid.path 3
+qid.version 0
+mode 20000000777
 direct blocks
-	0 4
-	1 5
-	2 6
-	3 13
-	4 16
-	5 17
+	0 1
+	1 2
+	2 4
+	3 5
+	4 7
+	5 8
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name adm
--- a/tests/test.b/blocks/30
+++ b/tests/test.b/blocks/30
@@ -1,6 +1,14 @@
-Tdata 8
-start 0
-tfree 0
+Tdentry 13
+name super.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653823452800029
+qid.path 13
+qid.version 0
+mode 444
 qidgen 66
-frees 0
 fsok 1
--- a/tests/test.b/blocks/31
+++ b/tests/test.b/blocks/31
@@ -1,7 +1,18 @@
-Tdata 7
+Tdentry 12
+name config.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653822313017147
+qid.path 12
+qid.version 0
+mode 444
 size 16384
 nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
 service test.b
--- a/tests/test.b/blocks/4
+++ b/tests/test.b/blocks/4
@@ -1,17 +1,18 @@
 Tdentry 4
-qid.version 0
-qid.path 4
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668273250516762142
-mode 444
+name users
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668653822312979078
+qid.path 4
+qid.version 0
+mode 20000000777
 direct blocks
-	0 1
-	1 0
+	0 6
+	1 9
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config
--- a/tests/test.b/blocks/5
+++ b/tests/test.b/blocks/5
@@ -1,21 +1,22 @@
 Tdentry 5
-qid.version 0
-qid.path 5
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668273250516766781
-mode 444
+name bkp
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668653822312974196
+qid.path 5
+qid.version 0
+mode 20000000777
 direct blocks
-	0 2
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
+	0 31
+	1 30
+	2 29
+	3 20
+	4 19
+	5 18
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super
--- a/tests/test.b/blocks/6
+++ b/tests/test.b/blocks/6
@@ -1,52 +1,18 @@
 Tdentry 6
-qid.version 0
-qid.path 6
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668273250516751354
-mode 20000000777
+name inuse
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 7
-	1 8
-	2 9
-	3 10
-	4 11
-	5 12
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name bkp
+size 95
+pdblkno 4
+pqpath 4
+mtime 1668653822312981698
+qid.path 6
+qid.version 0
+mode 444
+-1:adm:adm:glenda
+0:none:adm:
+9999:noworld::
+10000:sys::
+10001:upas:upas:
+10006:glenda:glenda:
--- a/tests/test.b/blocks/7
+++ b/tests/test.b/blocks/7
@@ -1,52 +1,14 @@
 Tdentry 7
-qid.version 0
-qid.path 7
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668273250516773656
-mode 444
+name frees
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 31
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name config.0
+size 17
+pdblkno 3
+pqpath 3
+mtime 1668653824452874271
+qid.path 7
+qid.version 0
+mode 444
+13 17 5
+21 28 8
--- a/tests/test.b/blocks/8
+++ b/tests/test.b/blocks/8
@@ -1,52 +1,12 @@
 Tdentry 8
-qid.version 0
-qid.path 8
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668273250516775888
-mode 444
+name ctl
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 30
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name super.0
+size 0
+pdblkno 3
+pqpath 3
+mtime 1668653822312990861
+qid.path 8
+qid.version 0
+mode 444
--- a/tests/test.b/blocks/9
+++ b/tests/test.b/blocks/9
@@ -1,52 +1,12 @@
 Tdentry 9
-qid.version 0
-qid.path 9
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668273250516778133
-mode 444
+name staging
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 29
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.0
+size 0
+pdblkno 4
+pqpath 4
+mtime 1668653822313001662
+qid.path 9
+qid.version 0
+mode 444
--- a/tests/test.d/blocks/0
+++ b/tests/test.d/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668653829664076187
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.d/blocks/1
+++ b/tests/test.d/blocks/1
@@ -1,7 +1,18 @@
-Tdata 4
+Tdentry 1
+name config
+uid -1
+gid -1
+muid -1
+size 110
+pdblkno 3
+pqpath 3
+mtime 1668653829664101767
+qid.path 1
+qid.version 0
+mode 444
 size 16384
 nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
 service test.d
--- a/tests/test.d/blocks/10
+++ b/tests/test.d/blocks/10
@@ -1,17 +1,18 @@
 Tdentry 10
-qid.version 0
-qid.path 10
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668277139343607905
-mode 444
+name /
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 0
+pqpath 0
+mtime 1668653829664099659
+qid.path 10
+qid.version 0
+mode 20000000777
 direct blocks
-	0 25
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config.1
--- a/tests/test.d/blocks/11
+++ b/tests/test.d/blocks/11
@@ -1,16 +1,17 @@
-Tdentry 11
-qid.version 0
-qid.path 11
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668277139343610655
-mode 444
-uid -1
+Tdentry 64
+name a
+uid 10006
 gid -1
-muid -1
+muid 10006
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668653830797319642
+qid.path 64
+qid.version 0
+mode 20000000777
 direct blocks
-	0 24
+	0 12
 	1 0
 	2 0
 	3 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super.1
--- a/tests/test.d/blocks/12
+++ b/tests/test.d/blocks/12
@@ -1,16 +1,17 @@
-Tdentry 12
-qid.version 0
-qid.path 12
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668277139343613101
-mode 444
-uid -1
+Tdentry 65
+name b
+uid 10006
 gid -1
-muid -1
+muid 10006
+size 0
+pdblkno 11
+pqpath 64
+mtime 1668653830797680290
+qid.path 65
+qid.version 0
+mode 20000000777
 direct blocks
-	0 23
+	0 13
 	1 0
 	2 0
 	3 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name root.1
--- a/tests/test.d/blocks/13
+++ b/tests/test.d/blocks/13
@@ -1,17 +1,18 @@
-Tdentry 13
+Tdentry 66
+name c
+uid 10006
+gid -1
+muid 10006
+size 0
+pdblkno 12
+pqpath 65
+mtime 1668653830797990437
+qid.path 66
 qid.version 0
-qid.path 13
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668277139343575845
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
 	0 14
-	1 18
+	1 0
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name users
--- a/tests/test.d/blocks/14
+++ b/tests/test.d/blocks/14
@@ -1,14 +1,15 @@
-Tdentry 14
-qid.version 0
-qid.path 14
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668277139343644480
-mode 444
-uid -1
+Tdentry 67
+name d
+uid 10006
 gid -1
-muid -1
+muid 10006
+size 0
+pdblkno 13
+pqpath 66
+mtime 1668653830798321214
+qid.path 67
+qid.version 0
+mode 20000000777
 direct blocks
 	0 15
 	1 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name inuse
--- a/tests/test.d/blocks/15
+++ b/tests/test.d/blocks/15
@@ -1,7 +1,49 @@
-Tdata 14
--1:adm:adm:glenda
-0:none:adm:
-9999:noworld::
-10000:sys::
-10001:upas:upas:
-10006:glenda:glenda:
+Tdentry 68
+name e
+uid 10006
+gid -1
+muid 10006
+size 0
+pdblkno 14
+pqpath 67
+mtime 1668653830798635022
+qid.path 68
+qid.version 0
+mode 20000000777
+direct blocks
+	0 0
+	1 0
+	2 0
+	3 0
+	4 0
+	5 0
+	6 0
+	7 0
+	8 0
+	9 0
+	10 0
+	11 0
+	12 0
+	13 0
+	14 0
+	15 0
+	16 0
+	17 0
+	18 0
+	19 0
+	20 0
+	21 0
+	22 0
+	23 0
+	24 0
+	25 0
+	26 0
+	27 0
+	28 0
+	29 0
+	30 0
+	31 0
+indirect blocks
+	0 0
+	1 0
+	2 0
--- a/tests/test.d/blocks/16
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 16
-qid.version 0
-qid.path 16
-size 9
-pdblkno 3
-pqpath 3
-mtime 1668277141503560639
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 28
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name frees
--- a/tests/test.d/blocks/17
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 17
-qid.version 0
-qid.path 17
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668277139343580932
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name ctl
--- a/tests/test.d/blocks/18
+++ b/tests/test.d/blocks/18
@@ -1,17 +1,18 @@
-Tdentry 18
-qid.version 0
-qid.path 18
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668277139343651859
-mode 444
+Tdentry 17
+name root.1
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653830797345302
+qid.path 17
+qid.version 0
+mode 444
 direct blocks
-	0 0
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name staging
--- a/tests/test.d/blocks/19
+++ b/tests/test.d/blocks/19
@@ -1,52 +1,14 @@
-Tdentry 19
-qid.version 0
-qid.path 19
-size 0
-pdblkno 0
-pqpath 0
-mtime 1668277139343656883
-mode 20000000777
+Tdentry 16
+name super.1
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 3
-	1 20
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name /
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653830821600509
+qid.path 16
+qid.version 0
+mode 444
+qidgen 69
+fsok 1
--- a/tests/test.d/blocks/2
+++ b/tests/test.d/blocks/2
@@ -1,6 +1,14 @@
-Tdata 5
-start 0
-tfree 0
+Tdentry 2
+name super
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668653829663995816
+qid.path 2
+qid.version 0
+mode 444
 qidgen 69
-frees 0
 fsok 1
--- a/tests/test.d/blocks/20
+++ b/tests/test.d/blocks/20
@@ -1,52 +1,18 @@
-Tdentry 64
-qid.version 0
-qid.path 64
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668277140479572173
-mode 20000000777
-uid 10006
+Tdentry 15
+name config.1
+uid -1
 gid -1
-muid 10006
-direct blocks
-	0 21
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name a
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653829664134724
+qid.path 15
+qid.version 0
+mode 444
+size 16384
+nblocks 32
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
+service test.d
--- a/tests/test.d/blocks/21
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 65
-qid.version 0
-qid.path 65
-size 0
-pdblkno 20
-pqpath 64
-mtime 1668277140479932494
-mode 20000000777
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 22
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name b
--- a/tests/test.d/blocks/22
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 66
-qid.version 0
-qid.path 66
-size 0
-pdblkno 21
-pqpath 65
-mtime 1668277140480294103
-mode 20000000777
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 26
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name c
--- a/tests/test.d/blocks/23
+++ /dev/null
@@ -1,1 +1,0 @@
-Tdata 12
--- a/tests/test.d/blocks/24
+++ /dev/null
@@ -1,6 +1,0 @@
-Tdata 11
-start 0
-tfree 0
-qidgen 69
-frees 0
-fsok 1
--- a/tests/test.d/blocks/29
+++ b/tests/test.d/blocks/29
@@ -1,1 +1,49 @@
-Tdata 9
+Tdentry 14
+name root.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653830797342567
+qid.path 14
+qid.version 0
+mode 444
+direct blocks
+	0 3
+	1 11
+	2 0
+	3 0
+	4 0
+	5 0
+	6 0
+	7 0
+	8 0
+	9 0
+	10 0
+	11 0
+	12 0
+	13 0
+	14 0
+	15 0
+	16 0
+	17 0
+	18 0
+	19 0
+	20 0
+	21 0
+	22 0
+	23 0
+	24 0
+	25 0
+	26 0
+	27 0
+	28 0
+	29 0
+	30 0
+	31 0
+indirect blocks
+	0 0
+	1 0
+	2 0
--- a/tests/test.d/blocks/3
+++ b/tests/test.d/blocks/3
@@ -1,21 +1,22 @@
 Tdentry 3
-qid.version 0
-qid.path 3
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668277139343565043
-mode 20000000777
+name adm
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668653829664087752
+qid.path 3
+qid.version 0
+mode 20000000777
 direct blocks
-	0 4
-	1 5
-	2 6
-	3 13
-	4 16
-	5 17
+	0 1
+	1 2
+	2 4
+	3 5
+	4 7
+	5 8
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name adm
--- a/tests/test.d/blocks/30
+++ b/tests/test.d/blocks/30
@@ -1,6 +1,14 @@
-Tdata 8
-start 0
-tfree 0
+Tdentry 13
+name super.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653830821592880
+qid.path 13
+qid.version 0
+mode 444
 qidgen 69
-frees 0
 fsok 1
--- a/tests/test.d/blocks/31
+++ b/tests/test.d/blocks/31
@@ -1,7 +1,18 @@
-Tdata 7
+Tdentry 12
+name config.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668653829664132970
+qid.path 12
+qid.version 0
+mode 444
 size 16384
 nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
 service test.d
--- a/tests/test.d/blocks/4
+++ b/tests/test.d/blocks/4
@@ -1,17 +1,18 @@
 Tdentry 4
-qid.version 0
-qid.path 4
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668277139343578657
-mode 444
+name users
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668653829664094606
+qid.path 4
+qid.version 0
+mode 20000000777
 direct blocks
-	0 1
-	1 0
+	0 6
+	1 9
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config
--- a/tests/test.d/blocks/5
+++ b/tests/test.d/blocks/5
@@ -1,21 +1,22 @@
 Tdentry 5
-qid.version 0
-qid.path 5
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668277139343583307
-mode 444
+name bkp
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668653829664089978
+qid.path 5
+qid.version 0
+mode 20000000777
 direct blocks
-	0 2
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
+	0 31
+	1 30
+	2 29
+	3 20
+	4 19
+	5 18
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super
--- a/tests/test.d/blocks/6
+++ b/tests/test.d/blocks/6
@@ -1,52 +1,18 @@
 Tdentry 6
-qid.version 0
-qid.path 6
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668277139343569514
-mode 20000000777
+name inuse
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 7
-	1 8
-	2 9
-	3 10
-	4 11
-	5 12
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name bkp
+size 95
+pdblkno 4
+pqpath 4
+mtime 1668653829664097231
+qid.path 6
+qid.version 0
+mode 444
+-1:adm:adm:glenda
+0:none:adm:
+9999:noworld::
+10000:sys::
+10001:upas:upas:
+10006:glenda:glenda:
--- a/tests/test.d/blocks/7
+++ b/tests/test.d/blocks/7
@@ -1,52 +1,14 @@
 Tdentry 7
-qid.version 0
-qid.path 7
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668277139343590570
-mode 444
+name frees
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 31
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name config.0
+size 17
+pdblkno 3
+pqpath 3
+mtime 1668653831821663550
+qid.path 7
+qid.version 0
+mode 444
+16 17 2
+21 28 8
--- a/tests/test.d/blocks/8
+++ b/tests/test.d/blocks/8
@@ -1,52 +1,12 @@
 Tdentry 8
-qid.version 0
-qid.path 8
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668277139343592854
-mode 444
+name ctl
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 30
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name super.0
+size 0
+pdblkno 3
+pqpath 3
+mtime 1668653829664105985
+qid.path 8
+qid.version 0
+mode 444
--- a/tests/test.d/blocks/9
+++ b/tests/test.d/blocks/9
@@ -1,52 +1,12 @@
 Tdentry 9
-qid.version 0
-qid.path 9
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668277139343595266
-mode 444
+name staging
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 29
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.0
+size 0
+pdblkno 4
+pqpath 4
+mtime 1668653829664116912
+qid.path 9
+qid.version 0
+mode 444
--- a/tests/test.e/blocks/0
+++ b/tests/test.e/blocks/0
@@ -1,3 +1,14 @@
-Tmagic 1
+Tdentry 11
+name magic
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668649281234453648
+qid.path 11
+qid.version 0
+mode 20000000777
 m[a]fs device
 512
--- a/tests/test.e/blocks/1
+++ b/tests/test.e/blocks/1
@@ -1,7 +1,18 @@
-Tdata 4
+Tdentry 1
+name config
+uid -1
+gid -1
+muid -1
+size 110
+pdblkno 3
+pqpath 3
+mtime 1668649281234479315
+qid.path 1
+qid.version 0
+mode 444
 size 16384
 nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
 service test.e
--- a/tests/test.e/blocks/10
+++ b/tests/test.e/blocks/10
@@ -1,17 +1,18 @@
 Tdentry 10
-qid.version 0
-qid.path 10
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668276591723293857
-mode 444
+name /
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 0
+pqpath 0
+mtime 1668649281234477144
+qid.path 10
+qid.version 0
+mode 20000000777
 direct blocks
-	0 25
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config.1
--- a/tests/test.e/blocks/11
+++ b/tests/test.e/blocks/11
@@ -1,19 +1,20 @@
-Tdentry 11
-qid.version 0
-qid.path 11
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668276591723296938
-mode 444
-uid -1
+Tdentry 64
+name a
+uid 10006
 gid -1
-muid -1
+muid 10006
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668649282368227802
+qid.path 64
+qid.version 0
+mode 20000000777
 direct blocks
-	0 24
-	1 0
-	2 0
-	3 0
+	0 12
+	1 13
+	2 14
+	3 15
 	4 0
 	5 0
 	6 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super.1
--- a/tests/test.e/blocks/12
+++ b/tests/test.e/blocks/12
@@ -1,52 +1,12 @@
-Tdentry 12
+Tdentry 0
+name 
+uid 0
+gid 0
+muid 0
+size 0
+pdblkno 0
+pqpath 0
+mtime 0
+qid.path 0
 qid.version 0
-qid.path 12
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668276591723299288
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 23
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.1
+mode 0
--- a/tests/test.e/blocks/13
+++ b/tests/test.e/blocks/13
@@ -1,17 +1,18 @@
-Tdentry 13
+Tdentry 66
+name c
+uid 10006
+gid -1
+muid 10006
+size 0
+pdblkno 11
+pqpath 64
+mtime 1668649282369210483
+qid.path 66
 qid.version 0
-qid.path 13
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668276591723236204
 mode 20000000777
-uid -1
-gid -1
-muid -1
 direct blocks
-	0 14
-	1 18
+	0 0
+	1 0
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name users
--- a/tests/test.e/blocks/14
+++ b/tests/test.e/blocks/14
@@ -1,52 +1,12 @@
-Tdentry 14
+Tdentry 0
+name 
+uid 0
+gid 0
+muid 0
+size 0
+pdblkno 0
+pqpath 0
+mtime 0
+qid.path 0
 qid.version 0
-qid.path 14
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668276591723301677
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 15
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name inuse
+mode 0
--- a/tests/test.e/blocks/15
+++ b/tests/test.e/blocks/15
@@ -1,7 +1,12 @@
-Tdata 14
--1:adm:adm:glenda
-0:none:adm:
-9999:noworld::
-10000:sys::
-10001:upas:upas:
-10006:glenda:glenda:
+Tdentry 68
+name 2.txt
+uid 10006
+gid -1
+muid 10006
+size 0
+pdblkno 11
+pqpath 64
+mtime 1668649282000000000
+qid.path 68
+qid.version 0
+mode 666
--- a/tests/test.e/blocks/16
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 16
-qid.version 0
-qid.path 16
-size 9
-pdblkno 3
-pqpath 3
-mtime 1668276593894314978
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 28
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name frees
--- a/tests/test.e/blocks/17
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 17
-qid.version 0
-qid.path 17
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668276591723240841
-mode 444
-uid -1
-gid -1
-muid -1
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name ctl
--- a/tests/test.e/blocks/18
+++ b/tests/test.e/blocks/18
@@ -1,17 +1,18 @@
-Tdentry 18
-qid.version 0
-qid.path 18
-size 503
-pdblkno 13
-pqpath 13
-mtime 1668276591723306327
-mode 444
+Tdentry 17
+name root.1
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668649282368273208
+qid.path 17
+qid.version 0
+mode 444
 direct blocks
-	0 0
-	1 0
+	0 3
+	1 11
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name staging
--- a/tests/test.e/blocks/19
+++ b/tests/test.e/blocks/19
@@ -1,52 +1,14 @@
-Tdentry 19
-qid.version 0
-qid.path 19
-size 0
-pdblkno 0
-pqpath 0
-mtime 1668276591723310830
-mode 20000000777
+Tdentry 16
+name super.1
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 3
-	1 20
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name /
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668649283711465387
+qid.path 16
+qid.version 0
+mode 444
+qidgen 69
+fsok 1
--- a/tests/test.e/blocks/2
+++ b/tests/test.e/blocks/2
@@ -1,6 +1,14 @@
-Tdata 5
-start 0
-tfree 0
+Tdentry 2
+name super
+uid -1
+gid -1
+muid -1
+size 18
+pdblkno 3
+pqpath 3
+mtime 1668649281234382527
+qid.path 2
+qid.version 0
+mode 444
 qidgen 69
-frees 0
 fsok 1
--- a/tests/test.e/blocks/20
+++ b/tests/test.e/blocks/20
@@ -1,52 +1,18 @@
-Tdentry 64
-qid.version 0
-qid.path 64
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668276592859578424
-mode 20000000777
-uid 10006
+Tdentry 15
+name config.1
+uid -1
 gid -1
-muid 10006
-direct blocks
-	0 21
-	1 22
-	2 26
-	3 27
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name a
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668649281234513395
+qid.path 15
+qid.version 0
+mode 444
+size 16384
+nblocks 32
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
+service test.e
--- a/tests/test.e/blocks/21
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 0
-qid.version 0
-qid.path 0
-size 0
-pdblkno 0
-pqpath 0
-mtime 0
-mode 0
-uid 0
-gid 0
-muid 0
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name 
--- a/tests/test.e/blocks/22
+++ /dev/null
@@ -1,52 +1,0 @@
-Tdentry 66
-qid.version 0
-qid.path 66
-size 0
-pdblkno 20
-pqpath 64
-mtime 1668276592860580964
-mode 20000000777
-uid 10006
-gid -1
-muid 10006
-direct blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name c
--- a/tests/test.e/blocks/23
+++ /dev/null
@@ -1,1 +1,0 @@
-Tdata 12
--- a/tests/test.e/blocks/24
+++ /dev/null
@@ -1,6 +1,0 @@
-Tdata 11
-start 0
-tfree 0
-qidgen 69
-frees 0
-fsok 1
--- a/tests/test.e/blocks/29
+++ b/tests/test.e/blocks/29
@@ -1,1 +1,49 @@
-Tdata 9
+Tdentry 14
+name root.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668649282368270870
+qid.path 14
+qid.version 0
+mode 444
+direct blocks
+	0 3
+	1 11
+	2 0
+	3 0
+	4 0
+	5 0
+	6 0
+	7 0
+	8 0
+	9 0
+	10 0
+	11 0
+	12 0
+	13 0
+	14 0
+	15 0
+	16 0
+	17 0
+	18 0
+	19 0
+	20 0
+	21 0
+	22 0
+	23 0
+	24 0
+	25 0
+	26 0
+	27 0
+	28 0
+	29 0
+	30 0
+	31 0
+indirect blocks
+	0 0
+	1 0
+	2 0
--- a/tests/test.e/blocks/3
+++ b/tests/test.e/blocks/3
@@ -1,21 +1,22 @@
 Tdentry 3
-qid.version 0
-qid.path 3
-size 0
-pdblkno 19
-pqpath 19
-mtime 1668276591723224229
-mode 20000000777
+name adm
 uid -1
 gid -1
 muid -1
+size 0
+pdblkno 10
+pqpath 10
+mtime 1668649281234465155
+qid.path 3
+qid.version 0
+mode 20000000777
 direct blocks
-	0 4
-	1 5
-	2 6
-	3 13
-	4 16
-	5 17
+	0 1
+	1 2
+	2 4
+	3 5
+	4 7
+	5 8
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name adm
--- a/tests/test.e/blocks/30
+++ b/tests/test.e/blocks/30
@@ -1,6 +1,14 @@
-Tdata 8
-start 0
-tfree 0
+Tdentry 13
+name super.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668649283711461847
+qid.path 13
+qid.version 0
+mode 444
 qidgen 69
-frees 0
 fsok 1
--- a/tests/test.e/blocks/31
+++ b/tests/test.e/blocks/31
@@ -1,7 +1,18 @@
-Tdata 7
+Tdentry 12
+name config.0
+uid -1
+gid -1
+muid -1
+size 0
+pdblkno 5
+pqpath 5
+mtime 1668649281234511656
+qid.path 12
+qid.version 0
+mode 444
 size 16384
 nblocks 32
-backup config 1 to 31 25
-backup super 2 to 30 24
-backup root 19 to 29 23
+backup config 1 to 31 20
+backup super 2 to 30 19
+backup root 10 to 29 18
 service test.e
--- a/tests/test.e/blocks/4
+++ b/tests/test.e/blocks/4
@@ -1,17 +1,18 @@
 Tdentry 4
-qid.version 0
-qid.path 4
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668276591723238681
-mode 444
+name users
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668649281234472187
+qid.path 4
+qid.version 0
+mode 20000000777
 direct blocks
-	0 1
-	1 0
+	0 6
+	1 9
 	2 0
 	3 0
 	4 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name config
--- a/tests/test.e/blocks/5
+++ b/tests/test.e/blocks/5
@@ -1,21 +1,22 @@
 Tdentry 5
-qid.version 0
-qid.path 5
-size 0
-pdblkno 3
-pqpath 3
-mtime 1668276591723243242
-mode 444
+name bkp
 uid -1
 gid -1
 muid -1
+size 96
+pdblkno 3
+pqpath 3
+mtime 1668649281234467485
+qid.path 5
+qid.version 0
+mode 20000000777
 direct blocks
-	0 2
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
+	0 31
+	1 30
+	2 29
+	3 20
+	4 19
+	5 18
 	6 0
 	7 0
 	8 0
@@ -46,7 +47,3 @@
 	0 0
 	1 0
 	2 0
-	3 0
-	4 0
-	5 0
-name super
--- a/tests/test.e/blocks/6
+++ b/tests/test.e/blocks/6
@@ -1,52 +1,18 @@
 Tdentry 6
-qid.version 0
-qid.path 6
-size 96
-pdblkno 3
-pqpath 3
-mtime 1668276591723230093
-mode 20000000777
+name inuse
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 7
-	1 8
-	2 9
-	3 10
-	4 11
-	5 12
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name bkp
+size 95
+pdblkno 4
+pqpath 4
+mtime 1668649281234474782
+qid.path 6
+qid.version 0
+mode 444
+-1:adm:adm:glenda
+0:none:adm:
+9999:noworld::
+10000:sys::
+10001:upas:upas:
+10006:glenda:glenda:
--- a/tests/test.e/blocks/7
+++ b/tests/test.e/blocks/7
@@ -1,52 +1,14 @@
 Tdentry 7
-qid.version 0
-qid.path 7
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668276591723250539
-mode 444
+name frees
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 31
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name config.0
+size 17
+pdblkno 3
+pqpath 3
+mtime 1668649284711485011
+qid.path 7
+qid.version 0
+mode 444
+16 17 2
+21 28 8
--- a/tests/test.e/blocks/8
+++ b/tests/test.e/blocks/8
@@ -1,52 +1,12 @@
 Tdentry 8
-qid.version 0
-qid.path 8
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668276591723252873
-mode 444
+name ctl
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 30
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name super.0
+size 0
+pdblkno 3
+pqpath 3
+mtime 1668649281234484064
+qid.path 8
+qid.version 0
+mode 444
--- a/tests/test.e/blocks/9
+++ b/tests/test.e/blocks/9
@@ -1,52 +1,12 @@
 Tdentry 9
-qid.version 0
-qid.path 9
-size 503
-pdblkno 6
-pqpath 6
-mtime 1668276591723280439
-mode 444
+name staging
 uid -1
 gid -1
 muid -1
-direct blocks
-	0 29
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-	6 0
-	7 0
-	8 0
-	9 0
-	10 0
-	11 0
-	12 0
-	13 0
-	14 0
-	15 0
-	16 0
-	17 0
-	18 0
-	19 0
-	20 0
-	21 0
-	22 0
-	23 0
-	24 0
-	25 0
-	26 0
-	27 0
-	28 0
-	29 0
-	30 0
-	31 0
-indirect blocks
-	0 0
-	1 0
-	2 0
-	3 0
-	4 0
-	5 0
-name root.0
+size 0
+pdblkno 4
+pqpath 4
+mtime 1668649281234496330
+qid.path 9
+qid.version 0
+mode 444
--- a/updatefrees.c
+++ b/updatefrees.c
@@ -72,7 +72,7 @@
 		panic("null size %s", devfile);
 
 	if(debug){
-		print("Dentryblocks size %d Namelen %d\n", sizeof(Dentryblocks), Namelen);
+		print("Namelen %d\n", Namelen);
 		print("Dentry size %d\n", sizeof(Dentry));
 	}
 
@@ -92,7 +92,7 @@
 		d->dblocks[0] = freeblkno;
 
 		c = (Content*)frees;
-		c->type = Tdata;
+		c->tag = Tdata;
 		c->path = Qpfrees;
 
 		devwrite(Bdfrees, buf, Dentryunits);
--- a/used.c
+++ b/used.c
@@ -15,7 +15,7 @@
 char *devfile = nil;
 void walkdirectory(u64 blkno);
 void walkfile(u64 blkno);
-int checkdentry(u64 blkno, s16 tag, u64 qpath);
+int checkdentry(u64 blkno, u8 tag, u64 qpath);
 
 static void
 usage(void)
@@ -60,24 +60,24 @@
 }
 
 int
-checkvalid(u64 blkno, Tag *t, s16 tagtype, u64 qpath)
+checkvalid(u64 blkno, u8 dtag, u64 dpath, u8 tag, u64 qpath)
 {
-	if(t->type != tagtype || t->path != qpath){
+	if(dtag != tag || dpath != qpath){
 		/* if(chatty9p) */
 		fprint(2, "checkblock invalid %llud tag/path expected %s/%llud actual %s/%llud\n",
-			blkno, tagnames[tagtype], qpath, tagnames[t->type], t->path);
+			blkno, tagnames[tag], qpath, tagnames[dtag], dpath);
 		fprint(2, "used: %llud\n", blkno);
 		return 0;
 	}
 	if(chatty9p)
-		print("blkno %llud tag %s\n", blkno, tagnames[t->type]);
+		print("blkno %llud tag %s\n", blkno, tagnames[dtag]);
 	// print("%llud\n", blkno);
-	add(&useds, blkno, blklen(tagtype));
+	add(&useds, blkno, blklen(tag));
 	return 1;
 }
 
 int
-checkdentry(u64 blkno, s16 tag, u64 qpath)
+checkdentry(u64 blkno, u8 tag, u64 qpath)
 {
 	u8 buf[Rawblocksize];
 	Dentry *d;
@@ -84,7 +84,7 @@
 
 	devread(blkno, buf, Dentryunits);
 	d = (Dentry*)buf;
-	return checkvalid(blkno, d, tag, qpath);
+	return checkvalid(blkno, d->tag, d->path, tag, qpath);
 }
 
 void
@@ -97,34 +97,28 @@
 
 	devread(blkno, buf, blklen(tag));
 	t = (Content*)buf;
-	if(checkvalid(blkno, t, tag, qpath)){
-		if(t->type == Tind0){
-			bufa = (u64*)buf;
+	if(checkvalid(blkno, t->tag, t->path, tag, qpath)){
+		if(tag == Tind0){
 			for(i = 0; i<Nindperblock; i++){
-				cblkno = bufa[i];
+				cblkno = t->bufa[i];
 				if(cblkno == 0)
 					return;
-				cbuf = malloc(Rawblocksize);
-				devread(cblkno, cbuf, blklen(tag));
+				cbuf = malloc(blklen(bottomtag)*Unit);
+				devread(cblkno, cbuf, blklen(bottomtag));
 				ct = (Content*)cbuf;
-				if(ct->type == Tdentry && ct->type == bottomtag)
+				if(ct->tag == Tdentry && ct->tag == bottomtag)
 					walkdirectory(cblkno);
 				else
-					checkvalid(cblkno, ct, bottomtag, qpath);
+					checkvalid(cblkno, ct->tag, ct->path, bottomtag, qpath);
 				free(cbuf);
 			}
 		}else{
-			bufa = (u64*)buf;
-			cbuf = malloc(Rawblocksize);
 			for(i = 0; i<Nindperblock; i++){
-				cblkno = bufa[i];
+				cblkno = t->bufa[i];
 				if(cblkno == 0)
 					return;
-				devread(cblkno, cbuf, blklen(tag));
-				/* check tag */
 				walkindir(cblkno, tag-1,  bottomtag, qpath);
 			}
-			free(cbuf);
 		}
 	}
 	return;
@@ -143,11 +137,11 @@
 	d = (Dentry*)buf;
 	if(chatty9p)
 		print("walkdirectory %llud tag %s name %s d->qid.path %llud\n",
-				blkno, tagnames[d->type], d->name, d->qid.path);
-	if(d->type != Tdentry || d->path != d->qid.path){
+				blkno, tagnames[d->tag], d->name, d->qid.path);
+	if(d->tag != Tdentry || d->path != d->qid.path){
 		if(chatty9p)
 			print("walkdirectory invalid %llud tag/path expected %s/%llud actual %s/%llud\n",
-					blkno, tagnames[Tdentry], d->qid.path, tagnames[d->type], d->path);
+					blkno, tagnames[Tdentry], d->qid.path, tagnames[d->tag], d->path);
 		fprint(2, "%llud\n", blkno);
 	}else{
 		// print("%llud\n", blkno);
@@ -177,7 +171,7 @@
 			return;
 		devread(cblkno, cbuf, Dentryunits);
 		ct = (Content*)cbuf;
-		if(ct->type == Tind0+i){
+		if(ct->tag == Tind0+i){
 			walkindir(cblkno, Tind0+i, Tdentry, d->qid.path);
 		}else{
 			fprint(2, "invalid indir tag %llud\n", cblkno);
@@ -201,11 +195,11 @@
 	d = (Dentry*)buf;
 	if(chatty9p)
 		print("walkfile %llud tag %s name %s d->qid.path %llud\n",
-				blkno, tagnames[d->type], d->name, d->qid.path);
-	if(d->type != Tdentry || d->path != d->qid.path){
+				blkno, tagnames[d->tag], d->name, d->qid.path);
+	if(d->tag != Tdentry || d->path != d->qid.path){
 		if(chatty9p)
 			print("walkfile invalid %llud tag/path expected %s/%llud actual %s/%llud\n",
-					blkno, tagnames[Tdentry], d->qid.path, tagnames[d->type], d->path);
+					blkno, tagnames[Tdentry], d->qid.path, tagnames[d->tag], d->path);
 		fprint(2, "%llud\n", blkno);
 	}else{
 		// print("%llud\n", blkno);
@@ -224,7 +218,7 @@
 		cbuf = malloc(Rawblocksize);
 		devread(cblkno, cbuf, Rawblockunits);
 		ct = (Content*)cbuf;
-		checkvalid(cblkno, ct, Tdata, d->qid.path);
+		checkvalid(cblkno, ct->tag, ct->path, Tdata, d->qid.path);
 		free(cbuf);
 	}
 	cbuf = malloc(Rawblocksize);
@@ -234,7 +228,7 @@
 			return;
 		devread(cblkno, cbuf, Rawblockunits);
 		ct = (Content*)cbuf;
-		if(ct->type == Tind0+i){
+		if(ct->tag == Tind0+i){
 			walkindir(cblkno, Tind0+i, Tdata, d->qid.path);
 		}else{
 			fprint(2, "invalid indir tag %llud\n", cblkno);
--- a/writer.c
+++ b/writer.c
@@ -99,7 +99,7 @@
 	w->iobuf = b;
 
 	qlock(&drts.lck);
-	if(drts.n >= npendingwrites)
+	if(drts.n == npendingwrites)
 		rsleep(&drts.isfull);
 	if(chkwunlock(b) == 0){
 		showbuf(b);
@@ -148,7 +148,7 @@
 			return;
 		}
 	}
-	// dprint("dowrite: drts.n %llud\n", drts.n);
+//	dprint("dowrite: drts.n %llud\n", drts.n);
 	if(drts.head == nil){
 		qunlock(&drts.lck);
 		return;
@@ -160,7 +160,7 @@
 	qunlock(&drts.lck);
 
 	if(chatty9p > 4 && b!=nil)
-		dprint("getwrite done b->blkno %llud\n", b->blkno);
+		dprint("getwrite b->blkno %llud\n", b->blkno);
 	if((n = devwrite(b->blkno, b->payload, b->len)) != b->len*Unit){
 		dprint("%s\n", errstring[Esystem]);
 		panic("error writing block %llud: %llud bytes: %r\n",