flexnbd: Acknowledge new return type of bitset_run_count

This commit is contained in:
nick
2013-07-24 15:08:29 +01:00
parent 7de22a385e
commit 253cee5a10
3 changed files with 14 additions and 9 deletions

View File

@@ -79,7 +79,7 @@ void client_destroy( struct client *client )
* allocated, we can proceed as normal and make one call to writeloop.
*
*/
void write_not_zeroes(struct client* client, uint64_t from, int len)
void write_not_zeroes(struct client* client, uint64_t from, uint64_t len)
{
NULLCHECK( client );
NULLCHECK( client->serve );
@@ -96,7 +96,7 @@ void write_not_zeroes(struct client* client, uint64_t from, int len)
* and end to get the exact number of bytes.
*/
int run = bitset_run_count(map, from, len);
uint64_t run = bitset_run_count(map, from, len);
debug("write_not_zeroes: from=%ld, len=%d, run=%d", from, len, run);

View File

@@ -171,17 +171,17 @@ int mirror_pass(struct server * serve, int is_last_pass, uint64_t *written)
while (current < serve->size) {
int run = bitset_run_count(map, current, mirror_longest_write);
uint64_t run = bitset_run_count(map, current, mirror_longest_write);
if ( current + run > serve->size ) {
debug(
"Size not divisible by %i, adjusting final block",
block_allocation_resolution
);
run -= (( current + run ) - serve->size );
run = serve->size - current;
}
debug("mirror current=%ld, run=%d", current, run);
debug("mirror current=%"PRIu64", run=%"PRIu64, current, run);
/* FIXME: we could avoid sending sparse areas of the
* disc here, and probably save a lot of bandwidth and

View File

@@ -149,14 +149,19 @@ END_TEST
START_TEST( test_bitset_set )
{
struct bitset_mapping* map;
uint64_t *num;
map = bitset_alloc(64, 1);
num = (uint64_t*) map->bits;
ck_assert_int_eq( 0x0000000000000000, *num );
assert_bitset_is( map, 0x0000000000000000 );
bitset_set( map );
ck_assert_int_eq( 0xffffffffffffffff, *num );
assert_bitset_is( map, 0xffffffffffffffff );
free( map );
map = bitset_alloc( 6400, 100 );
assert_bitset_is( map, 0x0000000000000000 );
bitset_set( map );
assert_bitset_is( map, 0xffffffffffffffff );
free( map );
}
END_TEST