}
device->devid = devid;
device->barriers = 1;
+ spin_lock_init(&device->io_lock);
device->name = kstrdup(path, GFP_NOFS);
if (!device->name) {
kfree(device);
em_tree = &extent_root->fs_info->mapping_tree.map_tree;
spin_lock(&em_tree->lock);
ret = add_extent_mapping(em_tree, em);
- BUG_ON(ret);
spin_unlock(&em_tree->lock);
+ BUG_ON(ret);
free_extent_map(em);
return ret;
}
spin_lock(&em_tree->lock);
em = lookup_extent_mapping(em_tree, logical, len);
+ spin_unlock(&em_tree->lock);
BUG_ON(!em);
BUG_ON(em->start > logical || em->start + em->len < logical);
else
ret = 1;
free_extent_map(em);
- spin_unlock(&em_tree->lock);
return ret;
}
spin_lock(&em_tree->lock);
em = lookup_extent_mapping(em_tree, logical, *length);
+ spin_unlock(&em_tree->lock);
BUG_ON(!em);
BUG_ON(em->start > logical || em->start + em->len < logical);
((map->type & BTRFS_BLOCK_GROUP_RAID1) ||
(map->type & BTRFS_BLOCK_GROUP_DUP))) {
stripes_allocated = map->num_stripes;
- spin_unlock(&em_tree->lock);
free_extent_map(em);
kfree(multi);
goto again;
*multi_ret = multi;
out:
free_extent_map(em);
- spin_unlock(&em_tree->lock);
return 0;
}
length = key->offset;
spin_lock(&map_tree->map_tree.lock);
em = lookup_extent_mapping(&map_tree->map_tree, logical, 1);
+ spin_unlock(&map_tree->map_tree.lock);
/* already mapped? */
if (em && em->start <= logical && em->start + em->len > logical) {
free_extent_map(em);
- spin_unlock(&map_tree->map_tree.lock);
return 0;
} else if (em) {
free_extent_map(em);
}
- spin_unlock(&map_tree->map_tree.lock);
map = kzalloc(sizeof(*map), GFP_NOFS);
if (!map)
spin_lock(&map_tree->map_tree.lock);
ret = add_extent_mapping(&map_tree->map_tree, em);
- BUG_ON(ret);
spin_unlock(&map_tree->map_tree.lock);
+ BUG_ON(ret);
free_extent_map(em);
return 0;
return -ENOMEM;
list_add(&device->dev_list,
&root->fs_info->fs_devices->devices);
- device->total_ios = 0;
+ device->barriers = 1;
spin_lock_init(&device->io_lock);
}