Commit 8e56338d authored by Wang Shilong's avatar Wang Shilong Committed by Chris Mason

Btrfs: remove unnecessary transaction commit before send

We will finish orphan cleanups during snapshot, so we don't
have to commit transaction here.
Signed-off-by: default avatarWang Shilong <wangsl.fnst@cn.fujitsu.com>
Reviewed-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent 18f687d5
...@@ -4775,35 +4775,6 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_) ...@@ -4775,35 +4775,6 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_)
*/ */
WARN_ON(send_root->orphan_cleanup_state != ORPHAN_CLEANUP_DONE); WARN_ON(send_root->orphan_cleanup_state != ORPHAN_CLEANUP_DONE);
/*
* If we just created this root we need to make sure that the orphan
* cleanup has been done and committed since we search the commit root,
* so check its commit root transid with our otransid and if they match
* commit the transaction to make sure everything is updated.
*/
down_read(&send_root->fs_info->extent_commit_sem);
if (btrfs_header_generation(send_root->commit_root) ==
btrfs_root_otransid(&send_root->root_item)) {
struct btrfs_trans_handle *trans;
up_read(&send_root->fs_info->extent_commit_sem);
trans = btrfs_attach_transaction_barrier(send_root);
if (IS_ERR(trans)) {
if (PTR_ERR(trans) != -ENOENT) {
ret = PTR_ERR(trans);
goto out;
}
/* ENOENT means theres no transaction */
} else {
ret = btrfs_commit_transaction(trans, send_root);
if (ret)
goto out;
}
} else {
up_read(&send_root->fs_info->extent_commit_sem);
}
/* /*
* Userspace tools do the checks and warn the user if it's * Userspace tools do the checks and warn the user if it's
* not RO. * not RO.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment