btrfs-progs: Fix wrong return value of wait_for_subvolume_cleaning()
authorZhao Lei <zhaolei@cn.fujitsu.com>
Wed, 26 Aug 2015 14:03:38 +0000 (22:03 +0800)
committerDavid Sterba <dsterba@suse.com>
Tue, 1 Sep 2015 12:02:49 +0000 (14:02 +0200)
Reproduce:
 # btrfs subvolume sync /mnt/btrfs
 Subvolume id 323 is gone
 # echo $?
 1
 #

Reason:
 wait_for_subvolume_cleaning() return !0 in right case, because
 value of ret is set to "is subvolume clean" state before return.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-subvolume.c

index fd4de84..d2e37bb 100644 (file)
@@ -66,7 +66,7 @@ static int is_subvolume_cleaned(int fd, u64 subvolid)
 static int wait_for_subvolume_cleaning(int fd, int count, u64 *ids,
                int sleep_interval)
 {
-       int ret = 0;
+       int ret;
        int remaining;
        int i;
 
@@ -92,6 +92,8 @@ static int wait_for_subvolume_cleaning(int fd, int count, u64 *ids,
                        break;
                sleep(sleep_interval);
        }
+
+       ret = 0;
 out:
        return ret;
 }