diff --git a/src/libdiskfs/cache.c b/src/libdiskfs/cache.c
index cdef865..f1af6f1 100644
--- a/src/libdiskfs/cache.c
+++ b/src/libdiskfs/cache.c
@@ -145,7 +145,7 @@
 	lock(&d->lk);
 	dcb = findblock(d, offset);
 	if(dcb){
-//fprint(2, "found %llud in cache %p\n", (uvlong)offset, dcb);
+/*fprint(2, "found %llud in cache %p\n", (uvlong)offset, dcb);*/
 		if(dcb->ref++ == 0)
 			delfromlru(d, dcb);
 		unlock(&d->lk);
@@ -165,7 +165,7 @@
 		putlru(d, dcb);
 		dcb = nil;
 	}else{
-//fprint(2, "read %llud from disk %p\n", (uvlong)offset, dcb);
+/*fprint(2, "read %llud from disk %p\n", (uvlong)offset, dcb); */
 		dcb->subblock = b;
 		dcb->ref++;
 		addtohash(d, dcb, offset);
@@ -223,7 +223,7 @@
 		len = dlen-frag;
 	}
 	b->len = len;
-//fprint(2, "offset %llud at pointer %p %lux\n", (uvlong)offset, b->data, *(ulong*)(b->data+4));
+/*fprint(2, "offset %llud at pointer %p %lux\n", (uvlong)offset, b->data, *(ulong*)(b->data+4)); */
 	return b;
 }
 
diff --git a/src/libdiskfs/ext2.c b/src/libdiskfs/ext2.c
index b6b9773..41ebfce 100644
--- a/src/libdiskfs/ext2.c
+++ b/src/libdiskfs/ext2.c
@@ -111,8 +111,8 @@
 			fprint(2, "loading group: %r...");
 		return nil;
 	}
-//	if(debug)
-//		fprint(2, "group %d bitblock=%d...", bno/fs->blockspergroup, g->bitblock);
+/*	if(debug) */
+/*		fprint(2, "group %d bitblock=%d...", bno/fs->blockspergroup, g->bitblock); */
 
 	if((bitb = diskread(fs->disk, fs->blocksize, (u64int)g->bitblock*fs->blocksize)) == nil){
 		if(debug)
diff --git a/src/libdiskfs/ext2.h b/src/libdiskfs/ext2.h
index 29bf60b..d0503b4 100644
--- a/src/libdiskfs/ext2.h
+++ b/src/libdiskfs/ext2.h
@@ -44,7 +44,7 @@
 	IFREG = 0100000,
 	IFLNK = 0120000,
 	IFSOCK = 0140000,
-	IFWHT = 0160000,
+	IFWHT = 0160000
 };
 
 #define DIRLEN(namlen)	(((namlen)+8+3)&~3)
@@ -144,7 +144,7 @@
 };
 enum
 {
-	MinDirentSize = 4+2+1+1,
+	MinDirentSize = 4+2+1+1
 };
 
 /*
diff --git a/src/libdiskfs/ffs.c b/src/libdiskfs/ffs.c
index 3ae65a8..099c7bb 100644
--- a/src/libdiskfs/ffs.c
+++ b/src/libdiskfs/ffs.c
@@ -164,9 +164,9 @@
 				blockput(cgb);
 				goto error;
 			}
-			// cg->nfrag = cgblk->nfrag;
-			// cg->nblock = (cgblk->nfrag+fs->fragsperblock-1) / fs->fragsperblock;
-			// fprint(2, "cg #%d: cgblk %lud, %d blocks, %d inodes\n", cgblk->num, (ulong)cg->cgblkno, cg->nblock, cg->nino);
+			/* cg->nfrag = cgblk->nfrag; */
+			/* cg->nblock = (cgblk->nfrag+fs->fragsperblock-1) / fs->fragsperblock; */
+			/* fprint(2, "cg #%d: cgblk %lud, %d blocks, %d inodes\n", cgblk->num, (ulong)cg->cgblkno, cg->nblock, cg->nino); */
 		}
 	}
 	blockput(b);
diff --git a/src/libdiskfs/ffs.h b/src/libdiskfs/ffs.h
index 4a90aef..6a5a387 100644
--- a/src/libdiskfs/ffs.h
+++ b/src/libdiskfs/ffs.h
@@ -100,7 +100,7 @@
 	DTREG = 8,
 	DTLNK = 10,
 	DTSOCK = 12,
-	DTWHT = 14,
+	DTWHT = 14
 };
 
 struct Cylsum
diff --git a/src/libdiskfs/file.c b/src/libdiskfs/file.c
index 6843e34..d829578 100644
--- a/src/libdiskfs/file.c
+++ b/src/libdiskfs/file.c
@@ -21,7 +21,7 @@
 	nfilereads++;
 	len = ulen;
 	data = vdata;
-//	fprint(2, "readn 0x%llux 0x%ux\n", offset, ulen);
+/*	fprint(2, "readn 0x%llux 0x%ux\n", offset, ulen); */
 	while(len > 0){
 		n = pread(fd, data, len, offset);
 		if(n <= 0)
diff --git a/src/libdiskfs/venti.c b/src/libdiskfs/venti.c
index 5d8528c..cf246f9 100644
--- a/src/libdiskfs/venti.c
+++ b/src/libdiskfs/venti.c
@@ -56,14 +56,14 @@
 		return nil;
 	}
 
-//fprint(2, "vtread %V\n", e->score);
+/*fprint(2, "vtread %V\n", e->score); */
 	b = vtcacheglobal(c, e->score, e->type);
 	if(b == nil)
 		return nil;
 
 	for(i=d-1; i>=0; i--){
 		t = VtDataType+i;
-//fprint(2, "vtread %V\n", b->data+index[i]*VtScoreSize);
+/*fprint(2, "vtread %V\n", b->data+index[i]*VtScoreSize); */
 		bb = vtcacheglobal(c, b->data+index[i]*VtScoreSize, t);
 		vtblockput(b);
 		if(bb == nil)
