linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wang Shilong <wangshilong1991@gmail.com>
To: linux-btrfs@vger.kernel.org
Cc: dsterba@suse.cz, sandeen@redhat.com
Subject: [PATCH 20/20] Btrfs-progs: fix magic return value in cmds-scrub.c
Date: Wed,  4 Sep 2013 23:22:37 +0800	[thread overview]
Message-ID: <1378308157-4621-21-git-send-email-wangshilong1991@gmail.com> (raw)
In-Reply-To: <1378308157-4621-1-git-send-email-wangshilong1991@gmail.com>

From: Wang Shilong <wangsl.fnst@cn.fujitsu.com>

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>
---
 cmds-scrub.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/cmds-scrub.c b/cmds-scrub.c
index 55da405..605af45 100644
--- a/cmds-scrub.c
+++ b/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 = {
-- 
1.7.11.7


  parent reply	other threads:[~2013-09-04 15:23 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-04 15:22 [PATCH 00/20] fix magic return value in btrfs-progs Wang Shilong
2013-09-04 15:22 ` [PATCH 01/20] Btrfs-progs: return 1 rather than 129 in usage() Wang Shilong
2013-09-04 15:22 ` [PATCH 02/20] Btrfs-progs: fix magic return value in cmds-subvolume.c Wang Shilong
2013-09-04 15:22 ` [PATCH 03/20] Btrfs-progs: fix magic return value in cmds-chunk.c Wang Shilong
2013-09-04 15:22 ` [PATCH 04/20] Btrfs-progs: fix magic return value in cmds-dedup.c Wang Shilong
2013-09-04 15:22 ` [PATCH 05/20] Btrfs-progs: fix magic return value in cmds-device.c Wang Shilong
2013-09-04 15:22 ` [PATCH 06/20] Btrfs-progs: fix magic return value in cmds-filesystem.c Wang Shilong
2013-09-04 15:22 ` [PATCH 07/20] Btrfs-progs: fix magic return value in cmds-inspect.c Wang Shilong
2013-09-04 15:22 ` [PATCH 08/20] Btrfs-progs: fix magic return value in cmds-qgroup.c Wang Shilong
2013-09-04 15:22 ` [PATCH 09/20] Btrfs-progs: fix magic return value in cmds-quota.c Wang Shilong
2013-09-04 15:22 ` [PATCH 10/20] Btrfs-progs: fix magic return value in cmds-receive.c Wang Shilong
2013-09-04 15:22 ` [PATCH 11/20] Btrfs-progs: fix magic return value in cmds-restore.c Wang Shilong
2013-09-04 15:22 ` [PATCH 12/20] Btrfs-progs: fix magic return value in cmds-send.c Wang Shilong
2013-09-04 15:22 ` [PATCH 13/20] Btrfs-progs: fix magic return value in btrfs-imgae.c Wang Shilong
2013-09-04 15:22 ` [PATCH 14/20] Btrfs-progs: fix magic return value in btrfs-zero-log.c Wang Shilong
2013-09-04 15:22 ` [PATCH 15/20] Btrfs-progs: fix magic return value in send-test.c Wang Shilong
2013-09-04 15:22 ` [PATCH 16/20] Btrfs-progs: fix magic return value in dir-test.c Wang Shilong
2013-09-04 15:22 ` [PATCH 17/20] Btrfs-progs: fix magic return value in random-test.c Wang Shilong
2013-09-04 15:22 ` [PATCH 18/20] Btrfs-progs: fix magic return value in cmds-balance.c Wang Shilong
2013-09-04 16:26   ` Ilya Dryomov
2013-09-05  7:44     ` Wang Shilong
2013-09-05  8:21       ` Stefan Behrens
2013-09-05  8:23         ` Wang Shilong
2013-09-04 15:22 ` [PATCH 19/20] Btrfs-progs: fix magic return value in cmds-replace.c Wang Shilong
2013-09-04 15:22 ` Wang Shilong [this message]
2013-09-05  2:14 ` [PATCH 00/20] fix magic return value in btrfs-progs Anand Jain
2013-09-05  8:30   ` Wang Shilong
2013-09-09 14:08   ` David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1378308157-4621-21-git-send-email-wangshilong1991@gmail.com \
    --to=wangshilong1991@gmail.com \
    --cc=dsterba@suse.cz \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=sandeen@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).