Btrfs: replace tree->mapping with tree->private_data
[sfrench/cifs-2.6.git] / fs / btrfs / volumes.c
index 017b67daa3bbf375919019e5c089b94f97d3e2a5..e37f95976443be2fdda3b81d9d58501d4cdcb6ff 100644 (file)
@@ -2417,9 +2417,7 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path
        fs_info->fs_devices->total_devices++;
        fs_info->fs_devices->total_rw_bytes += device->total_bytes;
 
-       spin_lock(&fs_info->free_chunk_lock);
-       fs_info->free_chunk_space += device->total_bytes;
-       spin_unlock(&fs_info->free_chunk_lock);
+       atomic64_add(device->total_bytes, &fs_info->free_chunk_space);
 
        if (!blk_queue_nonrot(q))
                fs_info->fs_devices->rotating = 1;
@@ -2874,9 +2872,7 @@ int btrfs_remove_chunk(struct btrfs_trans_handle *trans,
                        mutex_lock(&fs_info->chunk_mutex);
                        btrfs_device_set_bytes_used(device,
                                        device->bytes_used - dev_extent_len);
-                       spin_lock(&fs_info->free_chunk_lock);
-                       fs_info->free_chunk_space += dev_extent_len;
-                       spin_unlock(&fs_info->free_chunk_lock);
+                       atomic64_add(dev_extent_len, &fs_info->free_chunk_space);
                        btrfs_clear_space_info_full(fs_info);
                        mutex_unlock(&fs_info->chunk_mutex);
                }
@@ -4409,9 +4405,7 @@ int btrfs_shrink_device(struct btrfs_device *device, u64 new_size)
        btrfs_device_set_total_bytes(device, new_size);
        if (device->writeable) {
                device->fs_devices->total_rw_bytes -= diff;
-               spin_lock(&fs_info->free_chunk_lock);
-               fs_info->free_chunk_space -= diff;
-               spin_unlock(&fs_info->free_chunk_lock);
+               atomic64_sub(diff, &fs_info->free_chunk_space);
        }
        mutex_unlock(&fs_info->chunk_mutex);
 
@@ -4535,9 +4529,7 @@ done:
                btrfs_device_set_total_bytes(device, old_size);
                if (device->writeable)
                        device->fs_devices->total_rw_bytes += diff;
-               spin_lock(&fs_info->free_chunk_lock);
-               fs_info->free_chunk_space += diff;
-               spin_unlock(&fs_info->free_chunk_lock);
+               atomic64_add(diff, &fs_info->free_chunk_space);
                mutex_unlock(&fs_info->chunk_mutex);
        }
        return ret;
@@ -4882,9 +4874,7 @@ static int __btrfs_alloc_chunk(struct btrfs_trans_handle *trans,
                btrfs_device_set_bytes_used(map->stripes[i].dev, num_bytes);
        }
 
-       spin_lock(&info->free_chunk_lock);
-       info->free_chunk_space -= (stripe_size * map->num_stripes);
-       spin_unlock(&info->free_chunk_lock);
+       atomic64_sub(stripe_size * map->num_stripes, &info->free_chunk_space);
 
        free_extent_map(em);
        check_raid56_incompat_flag(info, type);
@@ -6684,10 +6674,8 @@ static int read_one_dev(struct btrfs_fs_info *fs_info,
        device->in_fs_metadata = 1;
        if (device->writeable && !device->is_tgtdev_for_dev_replace) {
                device->fs_devices->total_rw_bytes += device->total_bytes;
-               spin_lock(&fs_info->free_chunk_lock);
-               fs_info->free_chunk_space += device->total_bytes -
-                       device->bytes_used;
-               spin_unlock(&fs_info->free_chunk_lock);
+               atomic64_add(device->total_bytes - device->bytes_used,
+                               &fs_info->free_chunk_space);
        }
        ret = 0;
        return ret;