diff options
Diffstat (limited to 'fs/btrfs/disk-io.c')
| -rw-r--r-- | fs/btrfs/disk-io.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index c65a5aac1e45..90b643e07f3c 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -1216,6 +1216,7 @@ static void __setup_root(u32 nodesize, u32 leafsize, u32 sectorsize,  	atomic_set(&root->log_writers, 0);  	atomic_set(&root->log_batch, 0);  	atomic_set(&root->orphan_inodes, 0); +	atomic_set(&root->refs, 1);  	root->log_transid = 0;  	root->last_log_commit = 0;  	extent_io_tree_init(&root->dirty_log_pages, @@ -2052,7 +2053,7 @@ static void del_fs_roots(struct btrfs_fs_info *fs_info)  		} else {  			free_extent_buffer(gang[0]->node);  			free_extent_buffer(gang[0]->commit_root); -			kfree(gang[0]); +			btrfs_put_fs_root(gang[0]);  		}  	} @@ -3417,7 +3418,7 @@ static void free_fs_root(struct btrfs_root *root)  	kfree(root->free_ino_ctl);  	kfree(root->free_ino_pinned);  	kfree(root->name); -	kfree(root); +	btrfs_put_fs_root(root);  }  void btrfs_free_fs_root(struct btrfs_root *root) | 

