Re: [PATCH 4/8] btrfs: free-space-cache, clean up unnecessary root arguments
On 2/15/17 4:28 PM, je...@suse.com wrote: > From: Jeff Mahoney> > The free space cache APIs accept a root but always use the tree root. > > Also, btrfs_truncate_free_space_cache accepts a root AND an inode but > the inode always points to the root anyway, so let's just pass the inode. This one has minor conflicts with Dave's patchset that removes path and objectid. -Jeff > Signed-off-by: Jeff Mahoney > --- > fs/btrfs/extent-tree.c | 9 + > fs/btrfs/free-space-cache.c | 25 +++-- > fs/btrfs/free-space-cache.h | 7 +++ > fs/btrfs/inode-map.c| 2 +- > fs/btrfs/relocation.c | 5 ++--- > 5 files changed, 22 insertions(+), 26 deletions(-) > > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c > index 20bedc7..a557249 100644 > --- a/fs/btrfs/extent-tree.c > +++ b/fs/btrfs/extent-tree.c > @@ -3372,7 +3372,7 @@ static int cache_save_setup(struct > btrfs_block_group_cache *block_group, > if (trans->aborted) > return 0; > again: > - inode = lookup_free_space_inode(root, block_group, path); > + inode = lookup_free_space_inode(fs_info, block_group, path); > if (IS_ERR(inode) && PTR_ERR(inode) != -ENOENT) { > ret = PTR_ERR(inode); > btrfs_release_path(path); > @@ -3386,7 +3386,8 @@ static int cache_save_setup(struct > btrfs_block_group_cache *block_group, > if (block_group->ro) > goto out_free; > > - ret = create_free_space_inode(root, trans, block_group, path); > + ret = create_free_space_inode(fs_info, trans, block_group, > + path); > if (ret) > goto out_free; > goto again; > @@ -3428,7 +3429,7 @@ static int cache_save_setup(struct > btrfs_block_group_cache *block_group, > if (ret) > goto out_put; > > - ret = btrfs_truncate_free_space_cache(root, trans, NULL, inode); > + ret = btrfs_truncate_free_space_cache(trans, NULL, inode); > if (ret) > goto out_put; > } > @@ -10319,7 +10320,7 @@ int btrfs_remove_block_group(struct > btrfs_trans_handle *trans, >* get the inode first so any iput calls done for the io_list >* aren't the final iput (no unlinks allowed now) >*/ > - inode = lookup_free_space_inode(tree_root, block_group, path); > + inode = lookup_free_space_inode(fs_info, block_group, path); > > mutex_lock(>transaction->cache_write_mutex); > /* > diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c > index 7015892..61a72fb 100644 > --- a/fs/btrfs/free-space-cache.c > +++ b/fs/btrfs/free-space-cache.c > @@ -94,12 +94,11 @@ static struct inode *__lookup_free_space_inode(struct > btrfs_root *root, > return inode; > } > > -struct inode *lookup_free_space_inode(struct btrfs_root *root, > +struct inode *lookup_free_space_inode(struct btrfs_fs_info *fs_info, > struct btrfs_block_group_cache > *block_group, struct btrfs_path *path) > { > struct inode *inode = NULL; > - struct btrfs_fs_info *fs_info = root->fs_info; > u32 flags = BTRFS_INODE_NODATASUM | BTRFS_INODE_NODATACOW; > > spin_lock(_group->lock); > @@ -109,7 +108,7 @@ struct inode *lookup_free_space_inode(struct btrfs_root > *root, > if (inode) > return inode; > > - inode = __lookup_free_space_inode(root, path, > + inode = __lookup_free_space_inode(fs_info->tree_root, path, > block_group->key.objectid); > if (IS_ERR(inode)) > return inode; > @@ -192,7 +191,7 @@ static int __create_free_space_inode(struct btrfs_root > *root, > return 0; > } > > -int create_free_space_inode(struct btrfs_root *root, > +int create_free_space_inode(struct btrfs_fs_info *fs_info, > struct btrfs_trans_handle *trans, > struct btrfs_block_group_cache *block_group, > struct btrfs_path *path) > @@ -200,11 +199,11 @@ int create_free_space_inode(struct btrfs_root *root, > int ret; > u64 ino; > > - ret = btrfs_find_free_objectid(root, ); > + ret = btrfs_find_free_objectid(fs_info->tree_root, ); > if (ret < 0) > return ret; > > - return __create_free_space_inode(root, trans, path, ino, > + return __create_free_space_inode(fs_info->tree_root, trans, path, ino, >block_group->key.objectid); > } > > @@ -227,11 +226,11 @@ int btrfs_check_trunc_cache_free_space(struct > btrfs_fs_info *fs_info, > return ret; > } > > -int btrfs_truncate_free_space_cache(struct btrfs_root *root, > - struct
[PATCH 4/8] btrfs: free-space-cache, clean up unnecessary root arguments
From: Jeff MahoneyThe free space cache APIs accept a root but always use the tree root. Also, btrfs_truncate_free_space_cache accepts a root AND an inode but the inode always points to the root anyway, so let's just pass the inode. Signed-off-by: Jeff Mahoney --- fs/btrfs/extent-tree.c | 9 + fs/btrfs/free-space-cache.c | 25 +++-- fs/btrfs/free-space-cache.h | 7 +++ fs/btrfs/inode-map.c| 2 +- fs/btrfs/relocation.c | 5 ++--- 5 files changed, 22 insertions(+), 26 deletions(-) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 20bedc7..a557249 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -3372,7 +3372,7 @@ static int cache_save_setup(struct btrfs_block_group_cache *block_group, if (trans->aborted) return 0; again: - inode = lookup_free_space_inode(root, block_group, path); + inode = lookup_free_space_inode(fs_info, block_group, path); if (IS_ERR(inode) && PTR_ERR(inode) != -ENOENT) { ret = PTR_ERR(inode); btrfs_release_path(path); @@ -3386,7 +3386,8 @@ static int cache_save_setup(struct btrfs_block_group_cache *block_group, if (block_group->ro) goto out_free; - ret = create_free_space_inode(root, trans, block_group, path); + ret = create_free_space_inode(fs_info, trans, block_group, + path); if (ret) goto out_free; goto again; @@ -3428,7 +3429,7 @@ static int cache_save_setup(struct btrfs_block_group_cache *block_group, if (ret) goto out_put; - ret = btrfs_truncate_free_space_cache(root, trans, NULL, inode); + ret = btrfs_truncate_free_space_cache(trans, NULL, inode); if (ret) goto out_put; } @@ -10319,7 +10320,7 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans, * get the inode first so any iput calls done for the io_list * aren't the final iput (no unlinks allowed now) */ - inode = lookup_free_space_inode(tree_root, block_group, path); + inode = lookup_free_space_inode(fs_info, block_group, path); mutex_lock(>transaction->cache_write_mutex); /* diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c index 7015892..61a72fb 100644 --- a/fs/btrfs/free-space-cache.c +++ b/fs/btrfs/free-space-cache.c @@ -94,12 +94,11 @@ static struct inode *__lookup_free_space_inode(struct btrfs_root *root, return inode; } -struct inode *lookup_free_space_inode(struct btrfs_root *root, +struct inode *lookup_free_space_inode(struct btrfs_fs_info *fs_info, struct btrfs_block_group_cache *block_group, struct btrfs_path *path) { struct inode *inode = NULL; - struct btrfs_fs_info *fs_info = root->fs_info; u32 flags = BTRFS_INODE_NODATASUM | BTRFS_INODE_NODATACOW; spin_lock(_group->lock); @@ -109,7 +108,7 @@ struct inode *lookup_free_space_inode(struct btrfs_root *root, if (inode) return inode; - inode = __lookup_free_space_inode(root, path, + inode = __lookup_free_space_inode(fs_info->tree_root, path, block_group->key.objectid); if (IS_ERR(inode)) return inode; @@ -192,7 +191,7 @@ static int __create_free_space_inode(struct btrfs_root *root, return 0; } -int create_free_space_inode(struct btrfs_root *root, +int create_free_space_inode(struct btrfs_fs_info *fs_info, struct btrfs_trans_handle *trans, struct btrfs_block_group_cache *block_group, struct btrfs_path *path) @@ -200,11 +199,11 @@ int create_free_space_inode(struct btrfs_root *root, int ret; u64 ino; - ret = btrfs_find_free_objectid(root, ); + ret = btrfs_find_free_objectid(fs_info->tree_root, ); if (ret < 0) return ret; - return __create_free_space_inode(root, trans, path, ino, + return __create_free_space_inode(fs_info->tree_root, trans, path, ino, block_group->key.objectid); } @@ -227,11 +226,11 @@ int btrfs_check_trunc_cache_free_space(struct btrfs_fs_info *fs_info, return ret; } -int btrfs_truncate_free_space_cache(struct btrfs_root *root, - struct btrfs_trans_handle *trans, +int btrfs_truncate_free_space_cache(struct btrfs_trans_handle *trans, struct btrfs_block_group_cache *block_group, struct inode *inode) { + struct btrfs_root *root =