Skip to content

Commit

Permalink
Btrfs: remove unnecessary transaction commit before send
Browse files Browse the repository at this point in the history
We will finish orphan cleanups during snapshot, so we don't
have to commit transaction here.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Reviewed-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
  • Loading branch information
Wang Shilong authored and masoncl committed Jan 28, 2014
1 parent 18f687d commit 8e56338
Showing 1 changed file with 0 additions and 29 deletions.
29 changes: 0 additions & 29 deletions fs/btrfs/send.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

/*
* 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
* not RO.
Expand Down

0 comments on commit 8e56338

Please sign in to comment.