search for: writer_wait

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...