Skip to content

Commit

Permalink
Btrfs: use common work instead of delayed work
Browse files Browse the repository at this point in the history
Since we do not want to delay the async transaction commit, we should
use common work, not delayed work.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
  • Loading branch information
Miao Xie authored and Josef Bacik committed Feb 20, 2013
1 parent 7b5a1c5 commit 7892b5a
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions fs/btrfs/transaction.c
Original file line number Diff line number Diff line change
Expand Up @@ -1305,13 +1305,13 @@ static void wait_current_trans_commit_start_and_unblock(struct btrfs_root *root,
struct btrfs_async_commit {
struct btrfs_trans_handle *newtrans;
struct btrfs_root *root;
struct delayed_work work;
struct work_struct work;
};

static void do_async_commit(struct work_struct *work)
{
struct btrfs_async_commit *ac =
container_of(work, struct btrfs_async_commit, work.work);
container_of(work, struct btrfs_async_commit, work);

/*
* We've got freeze protection passed with the transaction.
Expand Down Expand Up @@ -1339,7 +1339,7 @@ int btrfs_commit_transaction_async(struct btrfs_trans_handle *trans,
if (!ac)
return -ENOMEM;

INIT_DELAYED_WORK(&ac->work, do_async_commit);
INIT_WORK(&ac->work, do_async_commit);
ac->root = root;
ac->newtrans = btrfs_join_transaction(root);
if (IS_ERR(ac->newtrans)) {
Expand All @@ -1363,7 +1363,7 @@ int btrfs_commit_transaction_async(struct btrfs_trans_handle *trans,
&root->fs_info->sb->s_writers.lock_map[SB_FREEZE_FS-1],
1, _THIS_IP_);

schedule_delayed_work(&ac->work, 0);
schedule_work(&ac->work);

/* wait for transaction to start and unblock */
if (wait_for_unblock)
Expand Down

0 comments on commit 7892b5a

Please sign in to comment.