ext2 fixes
diff --git a/src/cmd/vbackup/config.c b/src/cmd/vbackup/config.c
index 7d5e2d8..1b5b404 100644
--- a/src/cmd/vbackup/config.c
+++ b/src/cmd/vbackup/config.c
@@ -463,6 +463,7 @@
 	ep = data+count;
 	while(e && p < ep){
 		ne.name = e->name;
+		ne.namelen = strlen(e->name);
 		ne.cookie = ++cookie;
 		ne.fileid = *(u64int*)e->sha1;
 		if(nfs3entrypack(p, ep, &np, &ne) < 0)
diff --git a/src/cmd/vbackup/diskftp.c b/src/cmd/vbackup/diskftp.c
index b8c26ed..bf58662 100644
--- a/src/cmd/vbackup/diskftp.c
+++ b/src/cmd/vbackup/diskftp.c
@@ -15,7 +15,7 @@
 	fprint(2, "\tcat file\n");
 	fprint(2, "\tls dir\n");
 	fprint(2, "\tstat file\n");
-	exits("usage");
+	threadexitsall("usage");
 }
 
 void
@@ -24,10 +24,10 @@
 	Fmt fmt;
 	char buf[256];
 
-	fmtfdinit(&fmt, 1, buf, sizeof buf);
+	fmtfdinit(&fmt, 2, buf, sizeof buf);
 	nfs3attrprint(&fmt, attr);
 	fmtfdflush(&fmt);
-	print("\n");
+	fprint(2, "\n");
 }
 
 char buf[8192];
@@ -105,6 +105,7 @@
 	if(strcmp(argv[1], "cat") == 0){
 		switch(attr.type){
 		case Nfs3FileReg:
+		case Nfs3FileDir:
 			offset = 0;
 			for(;;){
 				x(fsysreadfile(fsys, &au, &h, sizeof buf, offset, &data, &n, &eof));
diff --git a/src/cmd/vbackup/disknfs.c b/src/cmd/vbackup/disknfs.c
index edbcf3e..8ad4ffb 100644
--- a/src/cmd/vbackup/disknfs.c
+++ b/src/cmd/vbackup/disknfs.c
@@ -39,6 +39,14 @@
 	addr = "*";
 
 	ARGBEGIN{
+	default:
+		usage();
+	case 'L':
+		if(srv->localonly == 0)
+			srv->localonly = 1;
+		else
+			srv->localparanoia = 1;
+		break;
 	case 'R':
 		srv->chatty++;
 		break;
@@ -70,14 +78,15 @@
 
 	if(sunsrvudp(srv, addr) < 0)
 		sysfatal("starting server: %r");
-	sunsrvprog(srv, &nfs3prog, nfs3chan);
-	sunsrvprog(srv, &nfsmount3prog, mountchan);
 
 	sunsrvthreadcreate(srv, nfs3proc, nfs3chan);
 	sunsrvthreadcreate(srv, mount3proc, mountchan);
 
+	sunsrvprog(srv, &nfs3prog, nfs3chan);
+	sunsrvprog(srv, &nfsmount3prog, mountchan);
 	fsgetroot(&h);
-	print("mountbackups -h %.*H %s /mountpoint\n", h.len, h.h, addr);
+
+	print("vmount0 -h %.*H %s /mnt\n", h.len, h.h, addr);
 
 	threadexits(nil);
 }
diff --git a/src/cmd/vbackup/vnfs.c b/src/cmd/vbackup/vnfs.c
index 1de100c..019f7f7 100644
--- a/src/cmd/vbackup/vnfs.c
+++ b/src/cmd/vbackup/vnfs.c
@@ -116,7 +116,8 @@
 		tracecalls = 1;
 		break;
 	case 'V':
-		chattyventi = 1;
+		if(chattyventi++)
+			vttracelevel++;
 		break;
 	case 'a':
 		addr = EARGF(usage());
@@ -836,6 +837,7 @@
 			continue;
 		}
 		ne.name = n->name;
+		ne.namelen = strlen(n->name);
 		ne.cookie = ++cookie;
 		ne.fileid = *(u64int*)n->handle;
 		if(nfs3entrypack(p, ep, &np, &ne) < 0)