Commit Diff


commit - a1b61b4635adf4e070fdf91e3a512d94195214cd
commit + 9b3ac170501c1f1b50a8e7eaf39d68653b3bd72d
blob - 407ccd81824225bf55db08ffdfcbd8c83e26e3e8
blob + f5f823d7c1d6c3d01452a0f20ed097b26553277b
--- src/cmd/vac/file.c
+++ src/cmd/vac/file.c
@@ -408,7 +408,6 @@ dirlookup(VacFile *f, char *elem)
 				filefree(ff);
 				goto Err;
 			}
-fprint(2, "offset %s %lld\n", ff->dir.elem, ff->dir.qidoffset);
 			ff->qidoffset = f->qidoffset + ff->dir.qidoffset;
 			vtfileunlock(meta);
 			vtblockput(b);
@@ -664,7 +663,7 @@ vacfilegetentries(VacFile *f, VtEntry *e, VtEntry *me)
 	if(me){
 		if(f->msource == nil)
 			memset(me, 0, sizeof *me);
-		if(getentry(f->msource, me) < 0){
+		else if(getentry(f->msource, me) < 0){
 			filerunlock(f);
 			return -1;
 		}
blob - e97951b882585f35d3310bd1455519879bd8fea2
blob + 183fa380fab0121b3bc1a34adfddfce1cace5794
--- src/cmd/vac/vac.c
+++ src/cmd/vac/vac.c
@@ -616,9 +616,9 @@ vacmerge(VacFile *fp, char *name)
 	if(verbose)
 		fprint(2, "merging %s\n", name);
 
-	de = vdeopen(fs->root);
+	mp = vacfsgetroot(mfs);
+	de = vdeopen(mp);
 	if(de){
-		mp = vacfsgetroot(mfs);
 		offset = 0;
 		if(vacfsgetmaxqid(mfs, &maxqid) >= 0){
 			_vacfsnextqid(fs, &offset);
@@ -636,8 +636,8 @@ vacmerge(VacFile *fp, char *name)
 			vdcleanup(&vd);
 		}
 		vdeclose(de);
-		vacfiledecref(mp);
 	}
+	vacfiledecref(mp);
 	vacfsclose(mfs);
 	return 0;
 }