Commit 808a1292 authored by Nikolay Borisov's avatar Nikolay Borisov Committed by David Sterba

btrfs: make inode_need_compress take btrfs_inode

Simply gets rid of superfluous BTRFS_I() calls.
Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 99c88dc7
...@@ -424,29 +424,30 @@ static inline bool inode_can_compress(struct btrfs_inode *inode) ...@@ -424,29 +424,30 @@ static inline bool inode_can_compress(struct btrfs_inode *inode)
* Check if the inode needs to be submitted to compression, based on mount * Check if the inode needs to be submitted to compression, based on mount
* options, defragmentation, properties or heuristics. * options, defragmentation, properties or heuristics.
*/ */
static inline int inode_need_compress(struct inode *inode, u64 start, u64 end) static inline int inode_need_compress(struct btrfs_inode *inode, u64 start,
u64 end)
{ {
struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); struct btrfs_fs_info *fs_info = inode->root->fs_info;
if (!inode_can_compress(BTRFS_I(inode))) { if (!inode_can_compress(inode)) {
WARN(IS_ENABLED(CONFIG_BTRFS_DEBUG), WARN(IS_ENABLED(CONFIG_BTRFS_DEBUG),
KERN_ERR "BTRFS: unexpected compression for ino %llu\n", KERN_ERR "BTRFS: unexpected compression for ino %llu\n",
btrfs_ino(BTRFS_I(inode))); btrfs_ino(inode));
return 0; return 0;
} }
/* force compress */ /* force compress */
if (btrfs_test_opt(fs_info, FORCE_COMPRESS)) if (btrfs_test_opt(fs_info, FORCE_COMPRESS))
return 1; return 1;
/* defrag ioctl */ /* defrag ioctl */
if (BTRFS_I(inode)->defrag_compress) if (inode->defrag_compress)
return 1; return 1;
/* bad compression ratios */ /* bad compression ratios */
if (BTRFS_I(inode)->flags & BTRFS_INODE_NOCOMPRESS) if (inode->flags & BTRFS_INODE_NOCOMPRESS)
return 0; return 0;
if (btrfs_test_opt(fs_info, COMPRESS) || if (btrfs_test_opt(fs_info, COMPRESS) ||
BTRFS_I(inode)->flags & BTRFS_INODE_COMPRESS || inode->flags & BTRFS_INODE_COMPRESS ||
BTRFS_I(inode)->prop_compress) inode->prop_compress)
return btrfs_compress_heuristic(inode, start, end); return btrfs_compress_heuristic(&inode->vfs_inode, start, end);
return 0; return 0;
} }
...@@ -552,7 +553,7 @@ static noinline int compress_file_range(struct async_chunk *async_chunk) ...@@ -552,7 +553,7 @@ static noinline int compress_file_range(struct async_chunk *async_chunk)
* inode has not been flagged as nocompress. This flag can * inode has not been flagged as nocompress. This flag can
* change at any time if we discover bad compression ratios. * change at any time if we discover bad compression ratios.
*/ */
if (inode_need_compress(inode, start, end)) { if (inode_need_compress(BTRFS_I(inode), start, end)) {
WARN_ON(pages); WARN_ON(pages);
pages = kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS); pages = kcalloc(nr_pages, sizeof(struct page *), GFP_NOFS);
if (!pages) { if (!pages) {
...@@ -1827,7 +1828,7 @@ int btrfs_run_delalloc_range(struct inode *inode, struct page *locked_page, ...@@ -1827,7 +1828,7 @@ int btrfs_run_delalloc_range(struct inode *inode, struct page *locked_page,
ret = run_delalloc_nocow(BTRFS_I(inode), locked_page, start, end, ret = run_delalloc_nocow(BTRFS_I(inode), locked_page, start, end,
page_started, 0, nr_written); page_started, 0, nr_written);
} else if (!inode_can_compress(BTRFS_I(inode)) || } else if (!inode_can_compress(BTRFS_I(inode)) ||
!inode_need_compress(inode, start, end)) { !inode_need_compress(BTRFS_I(inode), start, end)) {
ret = cow_file_range(BTRFS_I(inode), locked_page, start, end, ret = cow_file_range(BTRFS_I(inode), locked_page, start, end,
page_started, nr_written, 1); page_started, nr_written, 1);
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment