mirror of
https://github.com/kdave/btrfs-progs
synced 2025-02-16 17:56:51 +00:00
Btrfs-progs: fix magic return value in cmds-scrub.c
There will be four kinds of return value for command "scrub start": 0: scrub dosen't find errors and return success. 1: usage or syntax errors. 3: scrub finds errors and correct all of them. 4: scrub finds errors and some of them are not correctable. Three kinds of return values for scrub cancel/resume: 0: cancel successfully. 1: usage or syntax errors. 2: cancel a not started or finished scrub. Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
parent
2e8956a55f
commit
5991043ea4
20
cmds-scrub.c
20
cmds-scrub.c
@ -1018,7 +1018,7 @@ static int mkdir_p(char *path)
|
||||
path[i] = '\0';
|
||||
ret = mkdir(path, 0777);
|
||||
if (ret && errno != EEXIST)
|
||||
return 1;
|
||||
return -errno;
|
||||
path[i] = '/';
|
||||
}
|
||||
|
||||
@ -1155,7 +1155,7 @@ static int scrub_start(int argc, char **argv, int resume)
|
||||
|
||||
if (fdmnt < 0) {
|
||||
ERR(!do_quiet, "ERROR: can't access '%s'\n", path);
|
||||
return 12;
|
||||
return 1;
|
||||
}
|
||||
|
||||
ret = get_fs_info(path, &fi_args, &di_args);
|
||||
@ -1261,8 +1261,7 @@ static int scrub_start(int argc, char **argv, int resume)
|
||||
if (!do_quiet)
|
||||
printf("scrub: nothing to resume for %s, fsid %s\n",
|
||||
path, fsid);
|
||||
err = 0;
|
||||
goto out;
|
||||
return 2;
|
||||
}
|
||||
|
||||
ret = prg_fd = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||
@ -1501,9 +1500,9 @@ out:
|
||||
if (err)
|
||||
return 1;
|
||||
if (e_correctable)
|
||||
return 7;
|
||||
return 3;
|
||||
if (e_uncorrectable)
|
||||
return 8;
|
||||
return 4;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1557,7 +1556,10 @@ static int cmd_scrub_cancel(int argc, char **argv)
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "ERROR: scrub cancel failed on %s: %s\n", path,
|
||||
errno == ENOTCONN ? "not running" : strerror(errno));
|
||||
ret = 1;
|
||||
if (errno == ENOTCONN)
|
||||
ret = 2;
|
||||
else
|
||||
ret = 1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -1642,7 +1644,7 @@ static int cmd_scrub_status(int argc, char **argv)
|
||||
|
||||
if (fdmnt < 0) {
|
||||
fprintf(stderr, "ERROR: can't access to '%s'\n", path);
|
||||
return 12;
|
||||
return 1;
|
||||
}
|
||||
|
||||
ret = get_fs_info(path, &fi_args, &di_args);
|
||||
@ -1727,7 +1729,7 @@ out:
|
||||
close(fdres);
|
||||
close_file_or_dir(fdmnt, dirstream);
|
||||
|
||||
return err;
|
||||
return !!err;
|
||||
}
|
||||
|
||||
const struct cmd_group scrub_cmd_group = {
|
||||
|
Loading…
Reference in New Issue
Block a user