btrfsck: decode error properly
authorSergei Trofimovich <slyfox@gentoo.org>
Sun, 28 Aug 2011 11:23:24 +0000 (14:23 +0300)
committerChris Mason <chris.mason@oracle.com>
Tue, 25 Oct 2011 13:18:59 +0000 (09:18 -0400)
check_mounted() returns kernel-style negative errors.
Patch drops sign for strerror().

Before the patch:
check_mounted(): Could not open /dev/sdb2
Could not check mount status: Unknown error 18446744073709551603

After the patch:
check_mounted(): Could not open /dev/sdb2
Could not check mount status: Permission denied

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
btrfs-select-super.c
btrfs-zero-log.c
btrfsck.c

index f12f36ce29f5060ebcfc9ae5268f70ea85ee7e5b..51eb9c969d7664fe701758e24d0289ec15210494 100644 (file)
@@ -75,7 +75,7 @@ int main(int ac, char **av)
        radix_tree_init();
 
        if((ret = check_mounted(av[optind])) < 0) {
-               fprintf(stderr, "Could not check mount status: %s\n", strerror(ret));
+               fprintf(stderr, "Could not check mount status: %s\n", strerror(-ret));
                return ret;
        } else if(ret) {
                fprintf(stderr, "%s is currently mounted. Aborting.\n", av[optind]);
index f10438be75ef45f67893abeee12e8f7fab6a186b..54d7858f41fe1edab38b48cd3efe0849b6d81870 100644 (file)
@@ -50,7 +50,7 @@ int main(int ac, char **av)
        radix_tree_init();
 
        if((ret = check_mounted(av[1])) < 0) {
-               fprintf(stderr, "Could not check mount status: %s\n", strerror(ret));
+               fprintf(stderr, "Could not check mount status: %s\n", strerror(-ret));
                return ret;
        } else if(ret) {
                fprintf(stderr, "%s is currently mounted. Aborting.\n", av[1]);
index fc2ac883f84ca65d0cada18c57a4d2f471e75382..3a23e665676ff672c838f2f9deb1c3ca47e7e173 100644 (file)
--- a/btrfsck.c
+++ b/btrfsck.c
@@ -2838,7 +2838,7 @@ int main(int ac, char **av)
        cache_tree_init(&root_cache);
 
        if((ret = check_mounted(av[optind])) < 0) {
-               fprintf(stderr, "Could not check mount status: %s\n", strerror(ret));
+               fprintf(stderr, "Could not check mount status: %s\n", strerror(-ret));
                return ret;
        } else if(ret) {
                fprintf(stderr, "%s is currently mounted. Aborting.\n", av[optind]);