• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/btrfs/

Lines Matching defs:block_rsv

2980 	struct btrfs_block_rsv *block_rsv;
2987 block_rsv = &root->fs_info->delalloc_block_rsv;
2988 spin_lock(&block_rsv->lock);
2989 reserved = block_rsv->reserved;
2990 spin_unlock(&block_rsv->lock);
3009 spin_lock(&block_rsv->lock);
3010 if (reserved > block_rsv->reserved)
3011 reclaimed = reserved - block_rsv->reserved;
3012 reserved = block_rsv->reserved;
3013 spin_unlock(&block_rsv->lock);
3026 struct btrfs_block_rsv *block_rsv,
3029 struct btrfs_space_info *space_info = block_rsv->space_info;
3066 static int reserve_metadata_bytes(struct btrfs_block_rsv *block_rsv,
3069 struct btrfs_space_info *space_info = block_rsv->space_info;
3083 if (block_rsv->priority >= 10) {
3087 if ((unused + block_rsv->reserved) *
3088 block_rsv->priority >=
3089 (num_bytes + block_rsv->reserved) * 10) {
3103 struct btrfs_block_rsv *block_rsv;
3105 block_rsv = trans->block_rsv;
3107 block_rsv = root->block_rsv;
3109 if (!block_rsv)
3110 block_rsv = &root->fs_info->empty_block_rsv;
3112 return block_rsv;
3115 static int block_rsv_use_bytes(struct btrfs_block_rsv *block_rsv,
3119 spin_lock(&block_rsv->lock);
3120 if (block_rsv->reserved >= num_bytes) {
3121 block_rsv->reserved -= num_bytes;
3122 if (block_rsv->reserved < block_rsv->size)
3123 block_rsv->full = 0;
3126 spin_unlock(&block_rsv->lock);
3130 static void block_rsv_add_bytes(struct btrfs_block_rsv *block_rsv,
3133 spin_lock(&block_rsv->lock);
3134 block_rsv->reserved += num_bytes;
3136 block_rsv->size += num_bytes;
3137 else if (block_rsv->reserved >= block_rsv->size)
3138 block_rsv->full = 1;
3139 spin_unlock(&block_rsv->lock);
3142 void block_rsv_release_bytes(struct btrfs_block_rsv *block_rsv,
3145 struct btrfs_space_info *space_info = block_rsv->space_info;
3147 spin_lock(&block_rsv->lock);
3149 num_bytes = block_rsv->size;
3150 block_rsv->size -= num_bytes;
3151 if (block_rsv->reserved >= block_rsv->size) {
3152 num_bytes = block_rsv->reserved - block_rsv->size;
3153 block_rsv->reserved = block_rsv->size;
3154 block_rsv->full = 1;
3158 spin_unlock(&block_rsv->lock);
3195 struct btrfs_block_rsv *block_rsv;
3199 block_rsv = kmalloc(sizeof(*block_rsv), GFP_NOFS);
3200 if (!block_rsv)
3203 btrfs_init_block_rsv(block_rsv);
3206 block_rsv->space_info = __find_space_info(fs_info,
3209 return block_rsv;
3223 * make the block_rsv struct be able to capture freed space.
3224 * the captured space will re-add to the the block_rsv struct
3228 struct btrfs_block_rsv *block_rsv)
3230 block_rsv->durable = 1;
3232 list_add_tail(&block_rsv->list, &fs_info->durable_block_rsv_list);
3238 struct btrfs_block_rsv *block_rsv,
3246 ret = reserve_metadata_bytes(block_rsv, num_bytes);
3248 block_rsv_add_bytes(block_rsv, num_bytes, 1);
3252 ret = should_retry_reserve(trans, root, block_rsv, num_bytes, retries);
3261 struct btrfs_block_rsv *block_rsv,
3268 if (!block_rsv)
3271 spin_lock(&block_rsv->lock);
3273 num_bytes = div_factor(block_rsv->size, min_factor);
3277 if (block_rsv->reserved >= num_bytes) {
3280 num_bytes -= block_rsv->reserved;
3281 if (block_rsv->durable &&
3282 block_rsv->freed[0] + block_rsv->freed[1] >= num_bytes)
3285 spin_unlock(&block_rsv->lock);
3289 if (block_rsv->refill_used) {
3290 ret = reserve_metadata_bytes(block_rsv, num_bytes);
3292 block_rsv_add_bytes(block_rsv, num_bytes, 0);
3308 printk(KERN_INFO"block_rsv size %llu reserved %llu freed %llu %llu\n",
3309 block_rsv->size, block_rsv->reserved,
3310 block_rsv->freed[0], block_rsv->freed[1]);
3323 struct btrfs_block_rsv *block_rsv,
3327 if (global_rsv->full || global_rsv == block_rsv ||
3328 block_rsv->space_info != global_rsv->space_info)
3330 block_rsv_release_bytes(block_rsv, global_rsv, num_bytes);
3367 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv;
3368 struct btrfs_space_info *sinfo = block_rsv->space_info;
3373 spin_lock(&block_rsv->lock);
3376 block_rsv->size = num_bytes;
3383 block_rsv->reserved += num_bytes;
3387 if (block_rsv->reserved >= block_rsv->size) {
3388 num_bytes = block_rsv->reserved - block_rsv->size;
3390 block_rsv->reserved = block_rsv->size;
3391 block_rsv->full = 1;
3394 spin_unlock(&block_rsv->lock);
3414 fs_info->extent_root->block_rsv = &fs_info->global_block_rsv;
3415 fs_info->csum_root->block_rsv = &fs_info->global_block_rsv;
3416 fs_info->dev_root->block_rsv = &fs_info->global_block_rsv;
3417 fs_info->tree_root->block_rsv = &fs_info->global_block_rsv;
3418 fs_info->chunk_root->block_rsv = &fs_info->chunk_block_rsv;
3459 trans->block_rsv = &root->fs_info->trans_block_rsv;
3470 BUG_ON(trans->block_rsv != &root->fs_info->trans_block_rsv);
3471 btrfs_block_rsv_release(root, trans->block_rsv,
3509 struct btrfs_block_rsv *dst_rsv = &pending->block_rsv;
3527 struct btrfs_block_rsv *block_rsv = &root->fs_info->delalloc_block_rsv;
3549 ret = reserve_metadata_bytes(block_rsv, to_reserve);
3552 ret = should_retry_reserve(NULL, root, block_rsv, to_reserve,
3563 block_rsv_add_bytes(block_rsv, to_reserve, 1);
3565 if (block_rsv->size > 512 * 1024 * 1024)
3867 struct btrfs_block_rsv *block_rsv;
3893 list_for_each_entry_safe(block_rsv, next_rsv,
3897 if (block_rsv->freed[idx] > 0) {
3898 block_rsv_add_bytes(block_rsv,
3899 block_rsv->freed[idx], 0);
3900 block_rsv->freed[idx] = 0;
3902 if (atomic_read(&block_rsv->usage) == 0) {
3903 btrfs_block_rsv_release(root, block_rsv, (u64)-1);
3905 if (block_rsv->freed[0] == 0 &&
3906 block_rsv->freed[1] == 0) {
3907 list_del_init(&block_rsv->list);
3908 kfree(block_rsv);
3911 btrfs_block_rsv_release(root, block_rsv, 0);
4191 struct btrfs_block_rsv *block_rsv;
4206 block_rsv = get_block_rsv(trans, root);
4208 if (block_rsv->space_info != cache->space_info)
4234 spin_lock(&block_rsv->lock);
4235 if (block_rsv->reserved < block_rsv->size) {
4236 block_rsv->reserved += buf->len;
4239 spin_unlock(&block_rsv->lock);
4249 if (block_rsv->durable && !cache->ro) {
4259 spin_lock(&block_rsv->lock);
4260 block_rsv->freed[trans->transid & 0x1] += buf->len;
4261 spin_unlock(&block_rsv->lock);
5151 struct btrfs_block_rsv *block_rsv;
5154 block_rsv = get_block_rsv(trans, root);
5156 if (block_rsv->size == 0) {
5157 ret = reserve_metadata_bytes(block_rsv, blocksize);
5160 return block_rsv;
5163 ret = block_rsv_use_bytes(block_rsv, blocksize);
5165 return block_rsv;
5168 printk(KERN_INFO"block_rsv size %llu reserved %llu freed %llu %llu\n",
5169 block_rsv->size, block_rsv->reserved,
5170 block_rsv->freed[0], block_rsv->freed[1]);
5175 static void unuse_block_rsv(struct btrfs_block_rsv *block_rsv, u32 blocksize)
5177 block_rsv_add_bytes(block_rsv, blocksize, 0);
5178 block_rsv_release_bytes(block_rsv, NULL, 0);
5195 struct btrfs_block_rsv *block_rsv;
5201 block_rsv = use_block_rsv(trans, root, blocksize);
5202 if (IS_ERR(block_rsv))
5203 return ERR_CAST(block_rsv);
5208 unuse_block_rsv(block_rsv, blocksize);
5727 struct btrfs_block_rsv *block_rsv, int update_ref)
5746 if (block_rsv)
5747 trans->block_rsv = block_rsv;
5843 if (block_rsv)
5844 trans->block_rsv = block_rsv;