btrfs-progs: Fix the return value of btrfs-map-logical

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>
master
Qu Wenruo 2013-08-01 13:35:33 +08:00 committed by David Sterba
parent eda2178b99
commit 7ea01da9c8
1 changed files with 6 additions and 5 deletions

View 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;
}