plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit bf930686861b74414bc6abb8a0455605d32743d7
parent e066b12927b496c9f3b442a5928bacfb48e6334e
Author: Venkatesh Srinivas <extrudedaluminiu@gmail.com>
Date:   Sun, 23 Aug 2009 17:35:22 -0400

venti: handle FS block size > MaxIo

http://codereview.appspot.com/110071

Diffstat:
Msrc/cmd/venti/srv/part.c | 7+++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/cmd/venti/srv/part.c b/src/cmd/venti/srv/part.c @@ -94,6 +94,8 @@ parsepart(char *name, char **file, char **subpart, u64int *lo, u64int *hi) 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) {