btrfs_free_log(trans, root);
ret2 = btrfs_update_reloc_root(trans, root);
- if (ret2)
+ if (unlikely(ret2))
return ret2;
/* see comments in should_cow_block() */
ret2 = btrfs_update_root(trans, fs_info->tree_root,
&root->root_key,
&root->root_item);
- if (ret2)
+ if (unlikely(ret2))
return ret2;
spin_lock(&fs_info->fs_roots_radix_lock);
}
&pending->dentry->d_name, 0,
&fname);
memalloc_nofs_restore(nofs_flags);
- if (pending->error)
+ if (unlikely(pending->error))
goto free_pending;
pending->error = btrfs_get_free_objectid(tree_root, &objectid);
- if (pending->error)
+ if (unlikely(pending->error))
goto free_fname;
/*
&pending->block_rsv,
to_reserve,
BTRFS_RESERVE_NO_FLUSH);
- if (pending->error)
+ if (unlikely(pending->error))
goto clear_skip_qgroup;
}
trans->bytes_reserved, 1);
parent_root = parent_inode->root;
ret = record_root_in_trans(trans, parent_root, 0);
- if (ret)
+ if (unlikely(ret))
goto fail;
cur_time = current_time(&parent_inode->vfs_inode);
dir_item = btrfs_lookup_dir_item(NULL, parent_root, path,
btrfs_ino(parent_inode),
&fname.disk_name, 0);
- if (dir_item != NULL && !IS_ERR(dir_item)) {
+ if (unlikely(dir_item != NULL && !IS_ERR(dir_item))) {
pending->error = -EEXIST;
goto dir_item_existed;
} else if (IS_ERR(dir_item)) {
else if (btrfs_qgroup_mode(fs_info) == BTRFS_QGROUP_MODE_SIMPLE)
ret = btrfs_qgroup_inherit(trans, btrfs_root_id(root), objectid,
btrfs_root_id(parent_root), pending->inherit);
- if (ret < 0)
+ if (unlikely(ret < 0))
goto fail;
ret = btrfs_insert_dir_item(trans, &fname.disk_name,
list_for_each_entry_safe(pending, next, head, list) {
list_del(&pending->list);
ret = create_pending_snapshot(trans, pending);
- if (ret)
+ if (unlikely(ret))
break;
}
return ret;
if (run_it) {
ret = btrfs_start_dirty_block_groups(trans);
- if (ret)
+ if (unlikely(ret))
goto lockdep_trans_commit_start_release;
}
}
ret = READ_ONCE(prev_trans->aborted);
btrfs_put_transaction(prev_trans);
- if (ret)
+ if (unlikely(ret))
goto lockdep_release;
spin_lock(&fs_info->trans_lock);
}
extwriter_counter_dec(cur_trans, trans->type);
ret = btrfs_start_delalloc_flush(fs_info);
- if (ret)
+ if (unlikely(ret))
goto lockdep_release;
ret = btrfs_run_delayed_items(trans);
- if (ret)
+ if (unlikely(ret))
goto lockdep_release;
/*
/* some pending stuffs might be added after the previous flush. */
ret = btrfs_run_delayed_items(trans);
- if (ret) {
+ if (unlikely(ret)) {
btrfs_lockdep_release(fs_info, btrfs_trans_num_writers);
goto cleanup_transaction;
}
* core function of the snapshot creation.
*/
ret = create_pending_snapshots(trans);
- if (ret)
+ if (unlikely(ret))
goto unlock_reloc;
/*
* the nodes and leaves.
*/
ret = btrfs_run_delayed_items(trans);
- if (ret)
+ if (unlikely(ret))
goto unlock_reloc;
ret = btrfs_run_delayed_refs(trans, U64_MAX);
- if (ret)
+ if (unlikely(ret))
goto unlock_reloc;
/*
WARN_ON(cur_trans != trans->transaction);
ret = commit_fs_roots(trans);
- if (ret)
+ if (unlikely(ret))
goto unlock_reloc;
/* commit_fs_roots gets rid of all the tree log roots, it is now
* new_roots. So let's do quota accounting.
*/
ret = btrfs_qgroup_account_extents(trans);
- if (ret < 0)
+ if (unlikely(ret < 0))
goto unlock_reloc;
ret = commit_cowonly_roots(trans);
- if (ret)
+ if (unlikely(ret))
goto unlock_reloc;
/*
* to go about their business
*/
mutex_unlock(&fs_info->tree_log_mutex);
- if (ret)
+ if (unlikely(ret))
goto scrub_continue;
update_commit_stats(fs_info);
btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_SUPER_COMMITTED);
ret = btrfs_finish_extent_commit(trans);
- if (ret)
+ if (unlikely(ret))
goto scrub_continue;
if (test_bit(BTRFS_TRANS_HAVE_FREE_BGS, &cur_trans->flags))