diff options
Diffstat (limited to 'tests/fs-tests')
| -rw-r--r-- | tests/fs-tests/integrity/integck.c | 18 | 
1 files changed, 10 insertions, 8 deletions
| diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c index 9bf42af..a53be64 100644 --- a/tests/fs-tests/integrity/integck.c +++ b/tests/fs-tests/integrity/integck.c @@ -278,12 +278,15 @@ static char *cat_paths(const char *a, const char *b)  /*   * Get the free space for the tested file system.   */ -static uint64_t get_free_space(void) +static void get_fs_space(uint64_t *total, uint64_t *free)  {  	struct statvfs st;  	CHECK(statvfs(fsinfo.mount_point, &st) == 0); -	return (uint64_t)st.f_bavail * (uint64_t)st.f_frsize; +	if (total) +		*total = (uint64_t)st.f_blocks * (uint64_t)st.f_frsize; +	if (free) +		*free =  (uint64_t)st.f_bavail * (uint64_t)st.f_frsize;  }  static char *dir_path(struct dir_info *parent, const char *name) @@ -862,7 +865,7 @@ static void file_mmap_write(struct file_info *file)  	if (!file->links)  		return; -	free_space = get_free_space(); +	get_fs_space(NULL, &free_space);  	if (!free_space)  		return;  	/* Randomly pick a written area of the file */ @@ -1939,8 +1942,7 @@ static void create_test_data(void)  		uint64_t total;  		for (i = 0; i < 10; ++i)  			do_an_operation(); -		free = get_free_space(); -		total = tests_get_total_space(); +		get_fs_space(&total, &free);  		if ((free * 100) / total >= 10)  			break;  	} @@ -2006,8 +2008,7 @@ static void update_test_data(void)  		uint64_t total;  		for (i = 0; i < 10; ++i)  			do_an_operation(); -		free = get_free_space(); -		total = tests_get_total_space(); +		get_fs_space(&total, &free);  		if ((free * 100) / total >= 50)  			break;  	} @@ -2281,7 +2282,8 @@ static void get_tested_fs_info(void)  		fsinfo.can_mmap = 0;  	} -	for (z = get_free_space(); z >= 10; z /= 10) +	get_fs_space(NULL, &z); +	for (; z >= 10; z /= 10)  		fsinfo.log10_initial_free += 1;  	/* Pick the test directory name */ | 
