提交 c3504372 编写于 作者: N Nikolay Borisov 提交者: David Sterba

btrfs: make btrfs_lookup_ordered_extent take btrfs_inode

It doesn't use the generic vfs inode for anything use btrfs_inode
directly.
Signed-off-by: NNikolay Borisov <nborisov@suse.com>
Reviewed-by: NDavid Sterba <dsterba@suse.com>
Signed-off-by: NDavid Sterba <dsterba@suse.com>
上级 43c69849
...@@ -522,10 +522,11 @@ int btrfs_lookup_csums_range(struct btrfs_root *root, u64 start, u64 end, ...@@ -522,10 +522,11 @@ int btrfs_lookup_csums_range(struct btrfs_root *root, u64 start, u64 end,
* means this bio can contains potentially discontigous bio vecs * means this bio can contains potentially discontigous bio vecs
* so the logical offset of each should be calculated separately. * so the logical offset of each should be calculated separately.
*/ */
blk_status_t btrfs_csum_one_bio(struct inode *inode, struct bio *bio, blk_status_t btrfs_csum_one_bio(struct inode *vfsinode, struct bio *bio,
u64 file_start, int contig) u64 file_start, int contig)
{ {
struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); struct btrfs_inode *inode = BTRFS_I(vfsinode);
struct btrfs_fs_info *fs_info = inode->root->fs_info;
SHASH_DESC_ON_STACK(shash, fs_info->csum_shash); SHASH_DESC_ON_STACK(shash, fs_info->csum_shash);
struct btrfs_ordered_sum *sums; struct btrfs_ordered_sum *sums;
struct btrfs_ordered_extent *ordered = NULL; struct btrfs_ordered_extent *ordered = NULL;
......
...@@ -4558,7 +4558,7 @@ int btrfs_truncate_block(struct inode *inode, loff_t from, loff_t len, ...@@ -4558,7 +4558,7 @@ int btrfs_truncate_block(struct inode *inode, loff_t from, loff_t len,
lock_extent_bits(io_tree, block_start, block_end, &cached_state); lock_extent_bits(io_tree, block_start, block_end, &cached_state);
set_page_extent_mapped(page); set_page_extent_mapped(page);
ordered = btrfs_lookup_ordered_extent(inode, block_start); ordered = btrfs_lookup_ordered_extent(BTRFS_I(inode), block_start);
if (ordered) { if (ordered) {
unlock_extent_cached(io_tree, block_start, block_end, unlock_extent_cached(io_tree, block_start, block_end,
&cached_state); &cached_state);
......
...@@ -1265,7 +1265,7 @@ static int cluster_pages_for_defrag(struct inode *inode, ...@@ -1265,7 +1265,7 @@ static int cluster_pages_for_defrag(struct inode *inode,
while (1) { while (1) {
lock_extent_bits(tree, page_start, page_end, lock_extent_bits(tree, page_start, page_end,
&cached_state); &cached_state);
ordered = btrfs_lookup_ordered_extent(inode, ordered = btrfs_lookup_ordered_extent(BTRFS_I(inode),
page_start); page_start);
unlock_extent_cached(tree, page_start, page_end, unlock_extent_cached(tree, page_start, page_end,
&cached_state); &cached_state);
......
...@@ -714,14 +714,14 @@ int btrfs_wait_ordered_range(struct inode *inode, u64 start, u64 len) ...@@ -714,14 +714,14 @@ int btrfs_wait_ordered_range(struct inode *inode, u64 start, u64 len)
* find an ordered extent corresponding to file_offset. return NULL if * find an ordered extent corresponding to file_offset. return NULL if
* nothing is found, otherwise take a reference on the extent and return it * nothing is found, otherwise take a reference on the extent and return it
*/ */
struct btrfs_ordered_extent *btrfs_lookup_ordered_extent(struct inode *inode, struct btrfs_ordered_extent *btrfs_lookup_ordered_extent(struct btrfs_inode *inode,
u64 file_offset) u64 file_offset)
{ {
struct btrfs_ordered_inode_tree *tree; struct btrfs_ordered_inode_tree *tree;
struct rb_node *node; struct rb_node *node;
struct btrfs_ordered_extent *entry = NULL; struct btrfs_ordered_extent *entry = NULL;
tree = &BTRFS_I(inode)->ordered_tree; tree = &inode->ordered_tree;
spin_lock_irq(&tree->lock); spin_lock_irq(&tree->lock);
node = tree_search(tree, file_offset); node = tree_search(tree, file_offset);
if (!node) if (!node)
...@@ -819,7 +819,7 @@ int btrfs_find_ordered_sum(struct inode *inode, u64 offset, u64 disk_bytenr, ...@@ -819,7 +819,7 @@ int btrfs_find_ordered_sum(struct inode *inode, u64 offset, u64 disk_bytenr,
const u16 csum_size = btrfs_super_csum_size(fs_info->super_copy); const u16 csum_size = btrfs_super_csum_size(fs_info->super_copy);
int index = 0; int index = 0;
ordered = btrfs_lookup_ordered_extent(inode, offset); ordered = btrfs_lookup_ordered_extent(BTRFS_I(inode), offset);
if (!ordered) if (!ordered)
return 0; return 0;
......
...@@ -163,7 +163,7 @@ int btrfs_add_ordered_extent_compress(struct inode *inode, u64 file_offset, ...@@ -163,7 +163,7 @@ int btrfs_add_ordered_extent_compress(struct inode *inode, u64 file_offset,
int compress_type); int compress_type);
void btrfs_add_ordered_sum(struct btrfs_ordered_extent *entry, void btrfs_add_ordered_sum(struct btrfs_ordered_extent *entry,
struct btrfs_ordered_sum *sum); struct btrfs_ordered_sum *sum);
struct btrfs_ordered_extent *btrfs_lookup_ordered_extent(struct inode *inode, struct btrfs_ordered_extent *btrfs_lookup_ordered_extent(struct btrfs_inode *inode,
u64 file_offset); u64 file_offset);
void btrfs_start_ordered_extent(struct inode *inode, void btrfs_start_ordered_extent(struct inode *inode,
struct btrfs_ordered_extent *entry, int wait); struct btrfs_ordered_extent *entry, int wait);
......
...@@ -3880,7 +3880,7 @@ int btrfs_reloc_clone_csums(struct inode *inode, u64 file_pos, u64 len) ...@@ -3880,7 +3880,7 @@ int btrfs_reloc_clone_csums(struct inode *inode, u64 file_pos, u64 len)
u64 new_bytenr; u64 new_bytenr;
LIST_HEAD(list); LIST_HEAD(list);
ordered = btrfs_lookup_ordered_extent(inode, file_pos); ordered = btrfs_lookup_ordered_extent(BTRFS_I(inode), file_pos);
BUG_ON(ordered->file_offset != file_pos || ordered->num_bytes != len); BUG_ON(ordered->file_offset != file_pos || ordered->num_bytes != len);
disk_bytenr = file_pos + BTRFS_I(inode)->index_cnt; disk_bytenr = file_pos + BTRFS_I(inode)->index_cnt;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册