Re: [PATCH 4/8] btrfs: free-space-cache, clean up unnecessary root arguments

2017-02-15 Thread Jeff Mahoney
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

2017-02-15 Thread jeffm
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.

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 =