Displaying 4 results from an estimated 4 matches for "writer_wait".
Did you mean:
write_wait
2007 Aug 09
1
[RFC] All my fsync changes
...;
root->fs_info->generation++;
root->fs_info->running_transaction = cur_trans;
- cur_trans->num_writers = 0;
+ cur_trans->num_writers = 1;
+ cur_trans->num_joined = 0;
cur_trans->transid = root->fs_info->generation;
init_waitqueue_head(&cur_trans->writer_wait);
init_waitqueue_head(&cur_trans->commit_wait);
@@ -65,8 +70,15 @@ static int join_transaction(struct btrfs
cur_trans->start_time = get_seconds();
list_add_tail(&cur_trans->list, &root->fs_info->trans_list);
init_bit_radix(&cur_trans->dirty_pages);
- }...
2010 Oct 26
0
[PATCH v2] Btrfs: fix deadlock in btrfs_commit_transaction
...4c66..b461fe3 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -392,6 +392,7 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
WARN_ON(cur_trans->num_writers < 1);
cur_trans->num_writers--;
+ smp_mb();
if (waitqueue_active(&cur_trans->writer_wait))
wake_up(&cur_trans->writer_wait);
put_transaction(cur_trans);
@@ -992,7 +993,6 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans,
struct btrfs_root *root)
{
unsigned long joined = 0;
- unsigned long timeout = 1;
struct btrfs_transaction *cur_trans;
struc...
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
...rans->bytes_reserved += (trans->bytes_used -
+ trans->bytes_reserved);
+ else
+ cur_trans->bytes_reserved -= (trans->bytes_reserved -
+ trans->bytes_used);
+
+ if (!nested_trans)
+ current->journal_info = NULL;
+
if (waitqueue_active(&cur_trans->writer_wait))
wake_up(&cur_trans->writer_wait);
+
+ trans->use_count--;
put_transaction(cur_trans);
mutex_unlock(&info->trans_mutex);
- memset(trans, 0, sizeof(*trans));
- kmem_cache_free(btrfs_trans_handle_cachep, trans);
+
+ if (!trans->use_count) {
+ memset(trans, 0, sizeof(*tran...