Displaying 3 results from an estimated 3 matches for "dead_roots".
2012 Apr 26
7
[PATCH 2/4] Btrfs: fix deadlock on sb->s_umount when doing umount
The reason the deadlock is that:
Task Btrfs-cleaner
umount()
down_write(&s->s_umount)
sync_filesystem()
do auto-defragment and produce
lots of dirty pages
close_ctree()
wait for the end of
btrfs-cleaner
start_transaction
reserve space
shrink_delalloc()
writeback_inodes_sb_nr_if_idle()
2007 Aug 09
1
[RFC] All my fsync changes
...P_NOFS);
INIT_RADIX_TREE(&fs_info->block_group_radix, GFP_KERNEL);
INIT_RADIX_TREE(&fs_info->block_group_data_radix, GFP_KERNEL);
+ INIT_RADIX_TREE(&fs_info->transaction_map_radix, GFP_KERNEL);
INIT_LIST_HEAD(&fs_info->trans_list);
INIT_LIST_HEAD(&fs_info->dead_roots);
sb_set_blocksize(sb, 4096);
diff -r f6da57af2473 file.c
--- a/file.c Wed Aug 08 20:17:12 2007 -0400
+++ b/file.c Thu Aug 09 17:24:26 2007 -0400
@@ -694,22 +694,41 @@ static int btrfs_sync_file(struct file *
{
struct inode *inode = dentry->d_inode;
struct btrfs_root *root = BTRFS_I(inode...
2011 Aug 26
0
[PATCH] Btrfs: make some functions return void
...ot struct and adds it into the list of dead roots that need to
* be deleted
*/
-int btrfs_add_dead_root(struct btrfs_root *root)
+void btrfs_add_dead_root(struct btrfs_root *root)
{
spin_lock(&root->fs_info->trans_lock);
list_add(&root->root_list, &root->fs_info->dead_roots);
spin_unlock(&root->fs_info->trans_lock);
- return 0;
}
/*
@@ -1232,8 +1231,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);
-...