From: Miao Xie Date: Thu, 15 Nov 2012 08:14:47 +0000 (+0000) Subject: Btrfs: use common work instead of delayed work X-Git-Tag: v3.9~51^2~57^2~76 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7892b5afe4a1a00af25107e27357db30434ab876;p=platform%2Fkernel%2Flinux-amlogic.git Btrfs: use common work instead of delayed work Since we do not want to delay the async transaction commit, we should use common work, not delayed work. Signed-off-by: Miao Xie --- diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index a1455f1..86bb105 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -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. @@ -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)) { @@ -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)