From f018897664b5dc7cf69fab4c8c22d2b39451e999 Mon Sep 17 00:00:00 2001 From: David van Moolenbroek Date: Sun, 24 Aug 2014 09:37:10 +0000 Subject: [PATCH] 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 --- minix/tests/test72.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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++; -- 2.44.0