From patchwork Wed Sep 4 15:22:37 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wang Shilong X-Patchwork-Id: 2853763 Return-Path: X-Original-To: patchwork-linux-btrfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 824E0C0AB5 for ; Wed, 4 Sep 2013 15:23:59 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 616D7204CB for ; Wed, 4 Sep 2013 15:23:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 35FF4201ED for ; Wed, 4 Sep 2013 15:23:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935010Ab3IDPXr (ORCPT ); Wed, 4 Sep 2013 11:23:47 -0400 Received: from mail-pb0-f46.google.com ([209.85.160.46]:62111 "EHLO mail-pb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934783Ab3IDPXp (ORCPT ); Wed, 4 Sep 2013 11:23:45 -0400 Received: by mail-pb0-f46.google.com with SMTP id rq2so450633pbb.19 for ; Wed, 04 Sep 2013 08:23:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=P2ZWCeC+e584bN1Yfhmam8bxM7rK05ZQty8z+OhiiJM=; b=e1qUA2JKN9sCdz1Uf1/xjVc94RB1LYbzFYy5uDa/cLDPrs3Tpwi9It0FaPPySy8Yz1 y/m/c2KHRAFC2qKp1otA++Ky8WiEPEHR04gu8cu+aWQyTxVbLRrs++3lNKTC9K5SmH3m 33C3kPo2B2FQoqecCfZdb7FeeDCFgNek3bTUjqakui+QFqc8GktnPL0xVZ7i0/kNbV4t uLlGb7sDVdbibS4WyDH3afxBAVp7sWI2HpCfUEWaD2MPdNyUSAWGBDEWtvYHtTnye9+X 3U76r0H6ZU2P446oaW4UYbdlC34NZKgETrv+E6X2BbR19YpbGdXqOkr6HCco6G9Tw85i uZKw== X-Received: by 10.68.196.138 with SMTP id im10mr3987778pbc.5.1378308224665; Wed, 04 Sep 2013 08:23:44 -0700 (PDT) Received: from localhost.localdomain.localdomain ([223.65.191.73]) by mx.google.com with ESMTPSA id uw6sm29467271pbc.8.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 04 Sep 2013 08:23:43 -0700 (PDT) From: Wang Shilong 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 Message-Id: <1378308157-4621-21-git-send-email-wangshilong1991@gmail.com> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1378308157-4621-1-git-send-email-wangshilong1991@gmail.com> References: <1378308157-4621-1-git-send-email-wangshilong1991@gmail.com> Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Spam-Status: No, score=-9.2 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Wang Shilong 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 --- 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 = {