extent_io.h (7b4397386fbdc606eb053bc2a1cfd985aea59916) | extent_io.h (43eb5f2975848743e5b14c5bef20f40d404a7a04) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#ifndef BTRFS_EXTENT_IO_H 4#define BTRFS_EXTENT_IO_H 5 6#include <linux/rbtree.h> 7#include <linux/refcount.h> 8#include "ulist.h" --- 92 unchanged lines hidden (view full) --- 101 * pointer will be called unconditionally. 102 */ 103 extent_submit_bio_hook_t *submit_bio_hook; 104 int (*readpage_end_io_hook)(struct btrfs_io_bio *io_bio, u64 phy_offset, 105 struct page *page, u64 start, u64 end, 106 int mirror); 107}; 108 | 1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#ifndef BTRFS_EXTENT_IO_H 4#define BTRFS_EXTENT_IO_H 5 6#include <linux/rbtree.h> 7#include <linux/refcount.h> 8#include "ulist.h" --- 92 unchanged lines hidden (view full) --- 101 * pointer will be called unconditionally. 102 */ 103 extent_submit_bio_hook_t *submit_bio_hook; 104 int (*readpage_end_io_hook)(struct btrfs_io_bio *io_bio, u64 phy_offset, 105 struct page *page, u64 start, u64 end, 106 int mirror); 107}; 108 |
109enum { 110 IO_TREE_FS_INFO_FREED_EXTENTS0, 111 IO_TREE_FS_INFO_FREED_EXTENTS1, 112 IO_TREE_INODE_IO, 113 IO_TREE_INODE_IO_FAILURE, 114 IO_TREE_RELOC_BLOCKS, 115 IO_TREE_TRANS_DIRTY_PAGES, 116 IO_TREE_ROOT_DIRTY_LOG_PAGES, 117 IO_TREE_SELFTEST, 118}; 119 |
|
109struct extent_io_tree { 110 struct rb_root state; 111 struct btrfs_fs_info *fs_info; 112 void *private_data; 113 u64 dirty_bytes; 114 bool track_uptodate; | 120struct extent_io_tree { 121 struct rb_root state; 122 struct btrfs_fs_info *fs_info; 123 void *private_data; 124 u64 dirty_bytes; 125 bool track_uptodate; |
126 127 /* Who owns this io tree, should be one of IO_TREE_* */ 128 u8 owner; 129 |
|
115 spinlock_t lock; 116 const struct extent_io_ops *ops; 117}; 118 119struct extent_state { 120 u64 start; 121 u64 end; /* inclusive */ 122 struct rb_node rb_node; --- 113 unchanged lines hidden (view full) --- 236 237typedef struct extent_map *(get_extent_t)(struct btrfs_inode *inode, 238 struct page *page, 239 size_t pg_offset, 240 u64 start, u64 len, 241 int create); 242 243void extent_io_tree_init(struct btrfs_fs_info *fs_info, | 130 spinlock_t lock; 131 const struct extent_io_ops *ops; 132}; 133 134struct extent_state { 135 u64 start; 136 u64 end; /* inclusive */ 137 struct rb_node rb_node; --- 113 unchanged lines hidden (view full) --- 251 252typedef struct extent_map *(get_extent_t)(struct btrfs_inode *inode, 253 struct page *page, 254 size_t pg_offset, 255 u64 start, u64 len, 256 int create); 257 258void extent_io_tree_init(struct btrfs_fs_info *fs_info, |
244 struct extent_io_tree *tree, void *private_data); | 259 struct extent_io_tree *tree, unsigned int owner, 260 void *private_data); |
245int try_release_extent_mapping(struct page *page, gfp_t mask); 246int try_release_extent_buffer(struct page *page); 247int lock_extent_bits(struct extent_io_tree *tree, u64 start, u64 end, 248 struct extent_state **cached); 249 250static inline int lock_extent(struct extent_io_tree *tree, u64 start, u64 end) 251{ 252 return lock_extent_bits(tree, start, end, NULL); --- 284 unchanged lines hidden --- | 261int try_release_extent_mapping(struct page *page, gfp_t mask); 262int try_release_extent_buffer(struct page *page); 263int lock_extent_bits(struct extent_io_tree *tree, u64 start, u64 end, 264 struct extent_state **cached); 265 266static inline int lock_extent(struct extent_io_tree *tree, u64 start, u64 end) 267{ 268 return lock_extent_bits(tree, start, end, NULL); --- 284 unchanged lines hidden --- |