diff options
author | Chris Mason <chris.mason@oracle.com> | 2011-11-06 03:05:08 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2011-11-06 03:05:08 -0500 |
commit | 531f4b1ae5e0fc8c9b3f03838218e5ea178f80d3 (patch) | |
tree | 63efdfe9b192243fefb76be3921b9a2aaa26291e /fs/btrfs/ctree.h | |
parent | c06a0e120a4e381a1c291c1fce3c6155c5791cae (diff) | |
parent | 7a26285eea8eb92e0088db011571d887d4551b0f (diff) |
Merge branch 'for-chris' of git://github.com/sensille/linux into integration
Conflicts:
fs/btrfs/ctree.h
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r-- | fs/btrfs/ctree.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 6bb34fc1ff22..b9ba59ff9292 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@ -1074,6 +1074,7 @@ struct btrfs_fs_info { struct btrfs_workers endio_freespace_worker; struct btrfs_workers submit_workers; struct btrfs_workers caching_workers; + struct btrfs_workers readahead_workers; /* * fixup workers take dirty pages that didn't properly go through @@ -1158,6 +1159,10 @@ struct btrfs_fs_info { struct btrfs_delayed_root *delayed_root; + /* readahead tree */ + spinlock_t reada_lock; + struct radix_tree_root reada_tree; + /* next backup root to be overwritten */ int backup_root_index; }; @@ -2812,4 +2817,20 @@ int btrfs_scrub_cancel_devid(struct btrfs_root *root, u64 devid); int btrfs_scrub_progress(struct btrfs_root *root, u64 devid, struct btrfs_scrub_progress *progress); +/* reada.c */ +struct reada_control { + struct btrfs_root *root; /* tree to prefetch */ + struct btrfs_key key_start; + struct btrfs_key key_end; /* exclusive */ + atomic_t elems; + struct kref refcnt; + wait_queue_head_t wait; +}; +struct reada_control *btrfs_reada_add(struct btrfs_root *root, + struct btrfs_key *start, struct btrfs_key *end); +int btrfs_reada_wait(void *handle); +void btrfs_reada_detach(void *handle); +int btree_readahead_hook(struct btrfs_root *root, struct extent_buffer *eb, + u64 start, int err); + #endif |