Skip to content

Commit

Permalink
btrfs: export a helper for compression hard check
Browse files Browse the repository at this point in the history
commit e6f9d69 upstream.

inode_can_compress will be used outside of inode.c to check the
availability of setting compression flag by xattr. This patch moves
this function as an internal helper and renames it to
btrfs_inode_can_compress.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Chung-Chiang Cheng <cccheng@synology.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
cccheng authored and gregkh committed May 12, 2022
1 parent b2c0647 commit 5f7e8da
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
11 changes: 11 additions & 0 deletions fs/btrfs/btrfs_inode.h
Expand Up @@ -346,6 +346,17 @@ static inline bool btrfs_inode_in_log(struct btrfs_inode *inode, u64 generation)
return ret;
}

/*
* Check if the inode has flags compatible with compression
*/
static inline bool btrfs_inode_can_compress(const struct btrfs_inode *inode)
{
if (inode->flags & BTRFS_INODE_NODATACOW ||
inode->flags & BTRFS_INODE_NODATASUM)
return false;
return true;
}

struct btrfs_dio_private {
struct inode *inode;

Expand Down
15 changes: 2 additions & 13 deletions fs/btrfs/inode.c
Expand Up @@ -485,17 +485,6 @@ static noinline int add_async_extent(struct async_chunk *cow,
return 0;
}

/*
* Check if the inode has flags compatible with compression
*/
static inline bool inode_can_compress(struct btrfs_inode *inode)
{
if (inode->flags & BTRFS_INODE_NODATACOW ||
inode->flags & BTRFS_INODE_NODATASUM)
return false;
return true;
}

/*
* Check if the inode needs to be submitted to compression, based on mount
* options, defragmentation, properties or heuristics.
Expand All @@ -505,7 +494,7 @@ static inline int inode_need_compress(struct btrfs_inode *inode, u64 start,
{
struct btrfs_fs_info *fs_info = inode->root->fs_info;

if (!inode_can_compress(inode)) {
if (!btrfs_inode_can_compress(inode)) {
WARN(IS_ENABLED(CONFIG_BTRFS_DEBUG),
KERN_ERR "BTRFS: unexpected compression for ino %llu\n",
btrfs_ino(inode));
Expand Down Expand Up @@ -2015,7 +2004,7 @@ int btrfs_run_delalloc_range(struct btrfs_inode *inode, struct page *locked_page
(zoned && btrfs_is_data_reloc_root(inode->root)));
ret = run_delalloc_nocow(inode, locked_page, start, end,
page_started, nr_written);
} else if (!inode_can_compress(inode) ||
} else if (!btrfs_inode_can_compress(inode) ||
!inode_need_compress(inode, start, end)) {
if (zoned)
ret = run_delalloc_zoned(inode, locked_page, start, end,
Expand Down

0 comments on commit 5f7e8da

Please sign in to comment.