From: NeilBrown Date: Fri, 4 Mar 2011 23:44:23 +0000 (+1100) Subject: Fix block number selection in roll-forward X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=4774c0b90b8fa5e38bf3246322f3d9a26e6730b5;p=LaFS.git Fix block number selection in roll-forward When I changed this to use lafs_seg_next I broke it, and didn't test properly. So enhance the testing to catch this. Signed-off-by: NeilBrown --- diff --git a/roll.c b/roll.c index 3e3a6e3..664884b 100644 --- a/roll.c +++ b/roll.c @@ -618,6 +618,8 @@ roll_one(struct fs *fs, u64 *addrp, struct page *p, struct page *pg, * response */ /* FIXME range check count */ while (!err && cnt--) { + if (bytes != DescHole) + baddr = lafs_seg_next(fs, &seg); if (bytes != DescHole && !baddr) { /* We have fallen off the end of @@ -635,8 +637,6 @@ roll_one(struct fs *fs, u64 *addrp, struct page *p, struct page *pg, : blocksize, pg); bnum++; - if (bytes != DescHole) - baddr = lafs_seg_next(fs, &seg); } desc++; } else { diff --git a/test/go b/test/go index 3e97092..033dacd 100644 --- a/test/go +++ b/test/go @@ -22,7 +22,12 @@ ls /mnt/1; ls -ia /mnt/1 #mount /dev/sdb /mnt/2 #cat /mnt/1/17 -md5sum /mnt/1/afile +a=`md5sum /mnt/1/afile` +echo $a +set $a +if [ $1 != 'db53a848287fe6dc69da95678da94f6a' ] +then echo "Bad match" ; exit 1 +fi echo 'db53....4f6a' ( > /mnt/1/fred ) ls -li /mnt/1