diff options
| -rw-r--r-- | tests/fs-tests/integrity/integck.c | 23 | 
1 files changed, 13 insertions, 10 deletions
| diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c index 09b4a7d..f56ff66 100644 --- a/tests/fs-tests/integrity/integck.c +++ b/tests/fs-tests/integrity/integck.c @@ -1664,7 +1664,7 @@ static char *pick_rename_name(struct dir_info **parent,  	return dup_string(entry->name);  } -static void rename_entry(struct dir_entry_info *entry) +static int rename_entry(struct dir_entry_info *entry)  {  	struct dir_entry_info *rename_entry = NULL;  	struct dir_info *parent; @@ -1672,7 +1672,7 @@ static void rename_entry(struct dir_entry_info *entry)  	int ret, isdir, retry;  	if (!entry->parent) -		return; +		return 0;  	for (retry = 0; retry < 3; retry++) {  		path = dir_path(entry->parent, entry->name); @@ -1701,17 +1701,21 @@ static void rename_entry(struct dir_entry_info *entry)  	}  	if (!path) -		return; +		return 0;  	ret = rename(path, to);  	if (ret != 0) { +		ret = 0;  		if (errno == ENOSPC)  			full = 1; -		CHECK(errno == ENOSPC || errno == EBUSY); +		else if (errno !=  EBUSY) { +			pcv("failed to rename %s to %s", path, to); +			ret = -1; +		}  		free(path);  		free(name);  		free(to); -		return; +		return ret;  	}  	free(path); @@ -1720,7 +1724,7 @@ static void rename_entry(struct dir_entry_info *entry)  	if (rename_entry && rename_entry->type == entry->type &&  	    rename_entry->target == entry->target) {  		free(name); -		return; +		return 0;  	}  	add_dir_entry(parent, entry->type, name, entry->target); @@ -1728,6 +1732,7 @@ static void rename_entry(struct dir_entry_info *entry)  		remove_dir_entry(rename_entry);  	remove_dir_entry(entry);  	free(name); +	return 0;  }  static size_t str_count(const char *s, char c) @@ -1904,10 +1909,8 @@ static void operate_on_file(struct file_info *file)  static int operate_on_entry(struct dir_entry_info *entry)  {  	/* 1 time in 1000 rename */ -	if (random_no(1000) == 0) { -		rename_entry(entry); -		return 0; -	} +	if (random_no(1000) == 0) +		return rename_entry(entry);  	if (entry->type == 's') {  		symlink_check(entry->symlink);  		/* If shrinking, 1 time in 50, remove a symlink */ | 
