From: David van Moolenbroek Date: Sun, 24 Aug 2014 09:37:10 +0000 (+0000) Subject: test72: fix premature block size update X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/Bv9ARM.ch08.html?a=commitdiff_plain;h=refs%2Fchanges%2F42%2F2742%2F3;p=minix.git test72: fix premature block size update Updating the current block size before flushing the cache, which still contained blocks with the old block size, resulted in triggering an assert on position alignment. Change-Id: I7a83f3d3bc57bafc08aa6c8df64fbf978273bbfd --- diff --git a/minix/tests/test72.c b/minix/tests/test72.c index 2b4b2ae9b..047ef169b 100644 --- a/minix/tests/test72.c +++ b/minix/tests/test72.c @@ -274,6 +274,7 @@ int vm_clear_cache(dev_t dev) int main(int argc, char *argv[]) { + size_t newblocksize; int wss, cs, n = 0, p; #define ITER 3 @@ -286,8 +287,10 @@ main(int argc, char *argv[]) /* Can the cache handle differently sized blocks? */ for(p = 1; p <= 3; p++) { - curblocksize = PAGE_SIZE*p; - lmfs_set_blocksize(curblocksize, MYMAJOR); + /* Do not update curblocksize until the cache is flushed. */ + newblocksize = PAGE_SIZE*p; + lmfs_set_blocksize(newblocksize, MYMAJOR); + curblocksize = newblocksize; /* now it's safe to update */ lmfs_buf_pool(BLOCKS); if(dotest(curblocksize, BLOCKS, ITER)) e(n); n++; @@ -299,8 +302,8 @@ main(int argc, char *argv[]) for(wss = 2; wss <= 3; wss++) { int wsblocks = 10*wss*wss*wss*wss*wss; for(cs = wsblocks/4; cs <= wsblocks*3; cs *= 1.5) { - curblocksize = PAGE_SIZE; - lmfs_set_blocksize(curblocksize, MYMAJOR); + lmfs_set_blocksize(PAGE_SIZE, MYMAJOR); + curblocksize = PAGE_SIZE; /* same as above */ lmfs_buf_pool(cs); if(dotest(curblocksize, wsblocks, ITER)) e(n); n++;