btrfs-progs: fix check of running scrub
authorDavid Sterba <dsterba@suse.cz>
Mon, 19 Jan 2015 17:47:20 +0000 (18:47 +0100)
committerDavid Sterba <dsterba@suse.cz>
Mon, 19 Jan 2015 17:53:41 +0000 (18:53 +0100)
Scrub on multiple devices may report wrong status if scrub finishes
early on one of them.

Reported-by: Sandy McArthur Jr <sandymac@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
cmds-scrub.c

index eb50d8a..06c2a30 100644 (file)
@@ -1073,15 +1073,11 @@ static int is_scrub_running_in_kernel(int fd,
                memset(&sp, 0, sizeof(sp));
                sp.scrub_args.devid = di_args[i].devid;
                ret = ioctl(fd, BTRFS_IOC_SCRUB_PROGRESS, &sp.scrub_args);
-               if (ret < 0 && errno == ENODEV)
-                       continue;
-               if (ret < 0 && errno == ENOTCONN)
-                       return 0;
                if (!ret)
                        return 1;
        }
 
-       return 1;
+       return 0;
 }
 
 static const char * const cmd_scrub_start_usage[];