btrfs-progs: Simplify all-subvolumn-clean condition for wait_for_subvolume_cleaning

Instead of using a dirty-subvolumn-counter in old code, this patch
turn to use a simple and direct way:
  If (not dirty-subvolumn found in current loop) {
      return all_clean;
  }

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
master
Zhao Lei 2015-08-26 22:03:39 +08:00 committed by David Sterba
parent 601c5e1b23
commit 07cc891d1d
1 changed files with 7 additions and 8 deletions

View File

@ -67,11 +67,11 @@ static int wait_for_subvolume_cleaning(int fd, int count, u64 *ids,
int sleep_interval)
{
int ret;
int remaining;
int i;
remaining = count;
while (1) {
int clean = 1;
for (i = 0; i < count; i++) {
if (!ids[i])
continue;
@ -80,22 +80,21 @@ static int wait_for_subvolume_cleaning(int fd, int count, u64 *ids,
fprintf(stderr,
"ERROR: can't perform the search - %s\n",
strerror(-ret));
goto out;
return ret;
}
if (ret) {
printf("Subvolume id %llu is gone\n", ids[i]);
ids[i] = 0;
remaining--;
} else {
clean = 0;
}
}
if (!remaining)
if (clean == 0)
break;
sleep(sleep_interval);
}
ret = 0;
out:
return ret;
return 0;
}
static const char * const subvolume_cmd_group_usage[] = {