search for: in_commit

Displaying 7 results from an estimated 7 matches for "in_commit".

Did you mean: _commit
2010 Mar 22
5
[PATCH 0/5] asynchronous commit, snapshot ponies
Hi everyone, This patchset is the latest approach I''m using for the Ceph storage daemon to keep track of which data has safely committed to disk. The basic idea is to not use the (problematic) user transaction ioctls at all. Instead, the daemon quiesces its own write requests, initiates an async snapshot, and then continues. The snapshot approach is nice because it provides rollback.
2010 Oct 25
14
[PATCH 0/6] Btrfs commit fixes, async subvol operations
Hi Chris, This is the extent of my current queue of Btrfs snapshot/subvol/commit stuff. Most of these were posted several months ago. Can be sent upstream during this merge window? Not having this functionality is becoming a bit of a roadblock for our efforts to keep the Ceph data in a consistent state. These patches are also available from
2009 Aug 24
0
[PATCH] Btrfs: proper metadata -ENOSPC handling
...pu(path->nodes[level], &key, path->slots[level]); WARN_ON(memcmp(&key, &wc->update_progress, sizeof(key))); @@ -4877,7 +4874,9 @@ int btrfs_drop_snapshot(struct btrfs_root *root, int update_ref) } BUG_ON(wc->level == 0); - if (trans->transaction->in_commit || + ret = btrfs_try_extend_transaction(trans, tree_root, + BTRFS_MAX_LEVEL); + if (ret || trans->transaction->in_commit || trans->transaction->delayed_refs.flushing) { ret = btrfs_update_root(trans, tree_root, &root->root_key, @@ -4885,7 +4884,9 @@ in...
2007 Aug 09
1
[RFC] All my fsync changes
...ts); else diff -r f6da57af2473 transaction.h --- a/transaction.h Wed Aug 08 20:17:12 2007 -0400 +++ b/transaction.h Thu Aug 09 16:32:04 2007 -0400 @@ -23,6 +23,7 @@ struct btrfs_transaction { struct btrfs_transaction { u64 transid; unsigned long num_writers; + unsigned long num_joined; int in_commit; int use_count; int commit_done; @@ -57,6 +58,12 @@ static inline void btrfs_update_inode_bl BTRFS_I(inode)->block_group = trans->block_group; } +static inline void btrfs_set_inode_last_trans(struct btrfs_trans_handle *trans, + struct inode *inode) +{ + BTRFS_I(inode)->l...
2012 Aug 01
7
[PATCH] Btrfs: barrier before waitqueue_active
...sync_submit_wait)) + wake_up(&fs_info->async_submit_wait); + } /* If an error occured we just want to clean up the bio and move on */ if (async->error) { @@ -3785,14 +3787,17 @@ int btrfs_cleanup_transaction(struct btrfs_root *root) /* FIXME: cleanup wait for commit */ t->in_commit = 1; t->blocked = 1; + smp_mb(); if (waitqueue_active(&root->fs_info->transaction_blocked_wait)) wake_up(&root->fs_info->transaction_blocked_wait); t->blocked = 0; + smp_mb(); if (waitqueue_active(&root->fs_info->transaction_wait)) wake_up...
2010 Apr 19
0
[PATCH 08/12] Btrfs: Introduce global metadata reservation
...9 +375,19 @@ static int __btrfs_end_transaction(struc btrfs_trans_release_metadata(trans, root); + if (!root->fs_info->open_ioctl_trans && + should_end_transaction(trans, root)) + trans->transaction->blocked = 1; + + if (cur_trans->blocked && !cur_trans->in_commit) { + if (throttle) + return btrfs_commit_transaction(trans, root); + else + wake_up_process(info->transaction_kthread); + } + mutex_lock(&info->trans_mutex); - cur_trans = info->running_transaction; - WARN_ON(cur_trans != trans->transaction); + WARN_ON(cur_trans != info->...
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...@@ -1019,7 +1019,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, cur_trans->delayed_refs.flushing = 1; ret = btrfs_run_delayed_refs(trans, root, 0); - BUG_ON(ret); + btrfs_fixable_bug_on(ret); mutex_lock(&root->fs_info->trans_mutex); if (cur_trans->in_commit) { @@ -1028,7 +1028,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, btrfs_end_transaction(trans, root); ret = wait_for_commit(root, cur_trans); - BUG_ON(ret); + btrfs_fixable_bug_on(ret); mutex_lock(&root->fs_info->trans_mutex); put_transaction(cur_tr...