btrfs-progs: Fix the return value of btrfs-map-logical
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Thu, 1 Aug 2013 05:35:33 +0000 (13:35 +0800)
committerDavid Sterba <dsterba@suse.cz>
Tue, 3 Sep 2013 17:40:50 +0000 (19:40 +0200)
The ret variant in the main function is not changed so even problems
happen, return value is still 0.
The patch fixs the minor bug and return 1 if any problems happen.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
btrfs-map-logical.c

index fce6504..d3d3c70 100644 (file)
@@ -122,7 +122,6 @@ int main(int ac, char **av)
        int copy = 0;
        u64 bytes = 0;
        int out_fd = 0;
-       int err;
 
        while(1) {
                int c;
@@ -190,8 +189,9 @@ int main(int ac, char **av)
                        out_fd = open(output_file, O_RDWR | O_CREAT, 0600);
                        if (out_fd < 0)
                                goto close;
-                       err = ftruncate(out_fd, 0);
-                       if (err) {
+                       ret = ftruncate(out_fd, 0);
+                       if (ret) {
+                               ret = 1;
                                close(out_fd);
                                goto close;
                        }
@@ -208,8 +208,9 @@ int main(int ac, char **av)
        while (bytes > 0) {
                eb = debug_read_block(root, logical, root->sectorsize, copy);
                if (eb && output_file) {
-                       err = write(out_fd, eb->data, eb->len);
-                       if (err < 0 || err != eb->len) {
+                       ret = write(out_fd, eb->data, eb->len);
+                       if (ret < 0 || ret != eb->len) {
+                               ret = 1;
                                fprintf(stderr, "output file write failed\n");
                                goto out_close_fd;
                        }