Commit Diff


commit - e066b12927b496c9f3b442a5928bacfb48e6334e
commit + bf930686861b74414bc6abb8a0455605d32743d7
blob - 98439b32ace011e57fa3e8a6066a899c7d490142
blob + ae0448149a23cc12dfb6d2678993081a91051ba5
--- src/cmd/venti/srv/part.c
+++ src/cmd/venti/srv/part.c
@@ -94,6 +94,8 @@ parsepart(char *name, char **file, char **subpart, u64
 	return 0;
 }
 
+#undef min
+#define min(a, b) ((a) < (b) ? (a) : (b))
 Part*
 initpart(char *name, int mode)
 {
@@ -166,6 +168,9 @@ initpart(char *name, int mode)
 			part->fsblocksize = sfs.f_bsize;
 	}
 #endif
+
+	part->fsblocksize = min(part->fsblocksize, MaxIo);
+
 	if(subname && findsubpart(part, subname) < 0){
 		werrstr("cannot find subpartition %s", subname);
 		freepart(part);
@@ -224,8 +229,6 @@ partblocksize(Part *part, u32int blocksize)
  * body of the loop: up to MaxIo bytes at a time.  If everything isn't aligned properly,
  * we work one block at a time.
  */
-#undef min
-#define min(a, b) ((a) < (b) ? (a) : (b))
 int
 prwb(char *name, int fd, int isread, u64int offset, void *vbuf, u32int count, u32int blocksize)
 {