btrfs-progs: fix type mismatch in backtrace dumping functions
[platform/upstream/btrfs-progs.git] / extent_io.c
index 66aa214..c99d362 100644 (file)
@@ -27,6 +27,7 @@
 #include "list.h"
 #include "ctree.h"
 #include "volumes.h"
+#include "internal.h"
 
 void extent_io_tree_init(struct extent_io_tree *tree)
 {
@@ -538,12 +539,11 @@ static struct extent_buffer *__alloc_extent_buffer(struct extent_io_tree *tree,
 {
        struct extent_buffer *eb;
 
-       eb = malloc(sizeof(struct extent_buffer) + blocksize);
+       eb = calloc(1, sizeof(struct extent_buffer) + blocksize);
        if (!eb) {
                BUG();
                return NULL;
        }
-       memset(eb, 0, sizeof(struct extent_buffer) + blocksize);
 
        eb->start = bytenr;
        eb->len = blocksize;
@@ -714,7 +714,7 @@ int read_data_from_disk(struct btrfs_fs_info *info, void *buf, u64 offset,
                device = multi->stripes[0].dev;
 
                read_len = min(bytes_left, read_len);
-               if (device->fd == 0) {
+               if (device->fd <= 0) {
                        kfree(multi);
                        return -EIO;
                }
@@ -771,7 +771,7 @@ int write_data_to_disk(struct btrfs_fs_info *info, void *buf, u64 offset,
                        u64 stripe_len = this_len;
 
                        this_len = min(this_len, bytes_left);
-                       this_len = min(this_len, (u64)info->tree_root->leafsize);
+                       this_len = min(this_len, (u64)info->tree_root->nodesize);
 
                        eb = malloc(sizeof(struct extent_buffer) + this_len);
                        BUG_ON(!eb);
@@ -790,7 +790,7 @@ int write_data_to_disk(struct btrfs_fs_info *info, void *buf, u64 offset,
                        raid_map = NULL;
                } else while (dev_nr < multi->num_stripes) {
                        device = multi->stripes[dev_nr].dev;
-                       if (device->fd == 0) {
+                       if (device->fd <= 0) {
                                kfree(multi);
                                return -EIO;
                        }
@@ -827,29 +827,6 @@ int write_data_to_disk(struct btrfs_fs_info *info, void *buf, u64 offset,
        return 0;
 }
 
-
-int set_extent_buffer_uptodate(struct extent_buffer *eb)
-{
-       eb->flags |= EXTENT_UPTODATE;
-       return 0;
-}
-
-int clear_extent_buffer_uptodate(struct extent_io_tree *tree,
-                               struct extent_buffer *eb)
-{
-       eb->flags &= ~EXTENT_UPTODATE;
-       return 0;
-}
-
-int extent_buffer_uptodate(struct extent_buffer *eb)
-{
-       if (!eb || IS_ERR(eb))
-               return 0;
-       if (eb->flags & EXTENT_UPTODATE)
-               return 1;
-       return 0;
-}
-
 int set_extent_buffer_dirty(struct extent_buffer *eb)
 {
        struct extent_io_tree *tree = eb->tree;
@@ -908,3 +885,9 @@ void memset_extent_buffer(struct extent_buffer *eb, char c,
 {
        memset(eb->data + start, c, len);
 }
+
+int extent_buffer_test_bit(struct extent_buffer *eb, unsigned long start,
+                          unsigned long nr)
+{
+       return test_bit(nr, (unsigned long *)(eb->data + start));
+}