]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - fs/btrfs/relocation.c
Btrfs: switch extent_map to a rw lock
[net-next-2.6.git] / fs / btrfs / relocation.c
index c04f7f212602c4bcb71e58db938fcd0d8a9128ad..4adab903fc2bd269b17aa4c565368a6aae5c2451 100644 (file)
@@ -2646,9 +2646,9 @@ int relocate_data_extent(struct inode *inode, struct btrfs_key *extent_key)
        lock_extent(&BTRFS_I(inode)->io_tree, start, end, GFP_NOFS);
        while (1) {
                int ret;
-               spin_lock(&em_tree->lock);
+               write_lock(&em_tree->lock);
                ret = add_extent_mapping(em_tree, em);
-               spin_unlock(&em_tree->lock);
+               write_unlock(&em_tree->lock);
                if (ret != -EEXIST) {
                        free_extent_map(em);
                        break;