btrfs-progs: free-space-cache: Use DIV_ROUND_UP() to replace open code
[platform/upstream/btrfs-progs.git] / btrfs-map-logical.c
index f421a50..7a8bcff 100644 (file)
@@ -29,8 +29,9 @@
 #include "transaction.h"
 #include "list.h"
 #include "utils.h"
+#include "help.h"
 
-#define BUFFER_SIZE (64 * 1024)
+#define BUFFER_SIZE SZ_64K
 
 /* we write the mirror info to stdout unless they are dumping the data
  * to stdout
@@ -81,7 +82,7 @@ again:
        }
        logical = key.objectid;
        if (key.type == BTRFS_METADATA_ITEM_KEY)
-               len = fs_info->tree_root->nodesize;
+               len = fs_info->nodesize;
        else
                len = key.offset;
 
@@ -108,9 +109,8 @@ static int __print_mapping_info(struct btrfs_fs_info *fs_info, u64 logical,
                int i;
 
                cur_len = len - cur_offset;
-               ret = btrfs_map_block(&fs_info->mapping_tree, READ,
-                               logical + cur_offset, &cur_len,
-                               &multi, mirror_num, NULL);
+               ret = btrfs_map_block(fs_info, READ, logical + cur_offset,
+                                     &cur_len, &multi, mirror_num, NULL);
                if (ret) {
                        fprintf(info_file,
                                "Error: fails to map mirror%d logical %llu: %s\n",
@@ -125,7 +125,7 @@ static int __print_mapping_info(struct btrfs_fs_info *fs_info, u64 logical,
                                multi->stripes[0].physical,
                                device->name);
                }
-               kfree(multi);
+               free(multi);
                multi = NULL;
                cur_offset += cur_len;
        }
@@ -149,7 +149,7 @@ static int print_mapping_info(struct btrfs_fs_info *fs_info, u64 logical,
        int mirror_num;
        int ret = 0;
 
-       num_copies = btrfs_num_copies(&fs_info->mapping_tree, logical, len);
+       num_copies = btrfs_num_copies(fs_info, logical, len);
        for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) {
                ret = __print_mapping_info(fs_info, logical, len, mirror_num);
                if (ret < 0)
@@ -169,7 +169,7 @@ static int write_extent_content(struct btrfs_fs_info *fs_info, int out_fd,
 
        while (cur_offset < length) {
                cur_len = min_t(u64, length - cur_offset, BUFFER_SIZE);
-               ret = read_extent_data(fs_info->tree_root, buffer,
+               ret = read_extent_data(fs_info, buffer,
                                       logical + cur_offset, &cur_len, mirror);
                if (ret < 0) {
                        fprintf(stderr,
@@ -190,14 +190,14 @@ static int write_extent_content(struct btrfs_fs_info *fs_info, int out_fd,
        return ret;
 }
 
-static void print_usage(void) __attribute__((noreturn));
+__attribute__((noreturn))
 static void print_usage(void)
 {
-       fprintf(stderr, "usage: btrfs-map-logical [options] device\n");
-       fprintf(stderr, "\t-l Logical extent to map\n");
-       fprintf(stderr, "\t-c Copy of the extent to read (usually 1 or 2)\n");
-       fprintf(stderr, "\t-o Output file to hold the extent\n");
-       fprintf(stderr, "\t-b Number of bytes to read\n");
+       printf("usage: btrfs-map-logical [options] device\n");
+       printf("\t-l Logical extent to map\n");
+       printf("\t-c Copy of the extent to read (usually 1 or 2)\n");
+       printf("\t-o Output file to hold the extent\n");
+       printf("\t-b Number of bytes to read\n");
        exit(1);
 }
 
@@ -285,7 +285,7 @@ int main(int argc, char **argv)
        }
 
        if (bytes == 0)
-               bytes = root->nodesize;
+               bytes = root->fs_info->nodesize;
        cur_logical = logical;
        cur_len = bytes;