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