diff options
author | Qu Wenruo <wqu@suse.com> | 2020-06-24 07:23:52 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2020-07-27 12:55:28 +0200 |
commit | 38d37aa9c32938214ca071fe02762f55b89937fd (patch) | |
tree | a3d92808e5122abbab11a0c8fda7d599ba7e08d3 /fs/btrfs/ctree.h | |
parent | e4ecaf90bc13e2a9c351d5cd86d4094844d7d7bd (diff) |
btrfs: refactor btrfs_check_can_nocow() into two variants
The function btrfs_check_can_nocow() now has two completely different
call patterns.
For nowait variant, callers don't need to do any cleanup. While for
wait variant, callers need to release the lock if they can do nocow
write.
This is somehow confusing, and is already a problem for the exported
btrfs_check_can_nocow().
So this patch will separate the different patterns into different
functions.
For nowait variant, the function will be called check_nocow_nolock().
For wait variant, the function pair will be btrfs_check_nocow_lock()
btrfs_check_nocow_unlock().
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r-- | fs/btrfs/ctree.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 75dfb9b4d9e3..654b99af1587 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@ -3033,8 +3033,9 @@ int btrfs_dirty_pages(struct inode *inode, struct page **pages, size_t num_pages, loff_t pos, size_t write_bytes, struct extent_state **cached); int btrfs_fdatawrite_range(struct inode *inode, loff_t start, loff_t end); -int btrfs_check_can_nocow(struct btrfs_inode *inode, loff_t pos, - size_t *write_bytes, bool nowait); +int btrfs_check_nocow_lock(struct btrfs_inode *inode, loff_t pos, + size_t *write_bytes); +void btrfs_check_nocow_unlock(struct btrfs_inode *inode); /* tree-defrag.c */ int btrfs_defrag_leaves(struct btrfs_trans_handle *trans, |