Displaying 4 results from an estimated 4 matches for "open_ioctl_trans".
2008 Dec 11
0
[PATCH] btrfs: mnt_drop_write in ioctl_trans_end
...---
 fs/btrfs/ioctl.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 6228b69..69c4a07 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1059,6 +1059,8 @@ long btrfs_ioctl_trans_end(struct file *file)
 	root->fs_info->open_ioctl_trans--;
 	mutex_unlock(&root->fs_info->trans_mutex);
 
+	mnt_drop_write(file->f_path.mnt);
+
 out:
 	return ret;
 }
-- 
1.5.6.5
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at...
2009 Nov 10
12
[RFC] big fat transaction ioctl
...ther point in the transaction op vector to do some cleanup and/or an 
explicit WEDGE op to accomplish the same thing?)
- This still uses the existing ioctl start transaction call.  Depending on 
how Josef''s ENOSPC journal_info stuff works out, I should be able to avoid 
the current global open_ioctl_trans counter for a cleaner interaction with 
the btrfs transaction code.
- The data space reservation is still missing.  I need a way to 
find which space_info will be used, and pin it for the duration 
of the entire transaction.
- The metadata reservation is a worst case bound.  It could be less 
con...
2010 Apr 19
0
[PATCH 08/12] Btrfs: Introduce global metadata reservation
...btrfs_transaction *cur_trans;
+	struct btrfs_transaction *cur_trans = trans->transaction;
 	struct btrfs_fs_info *info = root->fs_info;
 	int count = 0;
 
@@ -349,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);
+	}
+...
2009 Aug 24
0
[PATCH] Btrfs: proper metadata -ENOSPC handling
...ct btrfs_trans_handle *h =
-		kmem_cache_alloc(btrfs_trans_handle_cachep, GFP_NOFS);
+	struct btrfs_transaction *cur_trans;
 	int ret;
 
-	mutex_lock(&root->fs_info->trans_mutex);
-	if (!root->fs_info->log_root_recovering &&
-	    ((wait == 1 && !root->fs_info->open_ioctl_trans) || wait == 2))
-		wait_current_trans(root);
 	ret = join_transaction(root);
-	BUG_ON(ret);
+	if (ret)
+		return ret;
+
+	cur_trans = root->fs_info->running_transaction;
 
-	h->transid = root->fs_info->running_transaction->transid;
-	h->transaction = root->fs_info->runnin...