Displaying 7 results from an estimated 7 matches for "put_transact".
2007 Aug 09
1
[RFC] All my fsync changes
Hello,
Ok here are all my fsync changes, including the fix for the put_transaction
stuff that I posted earlier. I figure it'll be easier to just commit it as one
thing then each individual peice. The additional thing that I did was add a
radix tree that tracks the current outstanding transactions. I also added a
field to the in memory btrfs inode that keeps track of the...
2010 Oct 26
0
[PATCH v2] Btrfs: fix deadlock in btrfs_commit_transaction
...trfs/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;
struct btrfs_transaction *prev_trans = NULL;
DEFINE_WAIT(wait);...
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.
2009 Aug 24
0
[PATCH] Btrfs: proper metadata -ENOSPC handling
...d);
+ 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(*trans));
+ kmem_cache_free(btrfs_trans_handle_cachep, trans);
+ }
return 0;
}
@@ -1067...
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
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...ur_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_trans);
@@ -1073,7 +1073,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans,
if (flush_on_commit || snap_pending) {
btrfs_start_delalloc_inodes(root, 1);
ret = btrfs_wait_ordered_extents(root, 0, 1);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
}
/*
@@ -...
2011 Oct 06
26
[PATCH v0 00/18] btfs: Subvolume Quota Groups
This is a first draft of a subvolume quota implementation. It is possible
to limit subvolumes and any group of subvolumes and also to track the amount
of space that will get freed when deleting snapshots.
The current version is functionally incomplete, with the main missing feature
being the initial scan and rescan of an existing filesystem.
I put some effort into writing an introduction into