btrfs: reada, sink start parameter to btree_readahead_hook
Originally, the eb and start were passed separately in case eb is NULL. Since the readahead has been refactored in 4.6, this is not true anymore and we can get rid of the parameter. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
bcdc51b204
commit
fc2e901f26
|
@ -3661,7 +3661,7 @@ struct reada_control *btrfs_reada_add(struct btrfs_root *root,
|
||||||
int btrfs_reada_wait(void *handle);
|
int btrfs_reada_wait(void *handle);
|
||||||
void btrfs_reada_detach(void *handle);
|
void btrfs_reada_detach(void *handle);
|
||||||
int btree_readahead_hook(struct btrfs_fs_info *fs_info,
|
int btree_readahead_hook(struct btrfs_fs_info *fs_info,
|
||||||
struct extent_buffer *eb, u64 start, int err);
|
struct extent_buffer *eb, int err);
|
||||||
|
|
||||||
static inline int is_fstree(u64 rootid)
|
static inline int is_fstree(u64 rootid)
|
||||||
{
|
{
|
||||||
|
|
|
@ -747,7 +747,7 @@ static int btree_readpage_end_io_hook(struct btrfs_io_bio *io_bio,
|
||||||
err:
|
err:
|
||||||
if (reads_done &&
|
if (reads_done &&
|
||||||
test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags))
|
test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags))
|
||||||
btree_readahead_hook(fs_info, eb, eb->start, ret);
|
btree_readahead_hook(fs_info, eb, ret);
|
||||||
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
/*
|
/*
|
||||||
|
@ -772,7 +772,7 @@ static int btree_io_failed_hook(struct page *page, int failed_mirror)
|
||||||
eb->read_mirror = failed_mirror;
|
eb->read_mirror = failed_mirror;
|
||||||
atomic_dec(&eb->io_pages);
|
atomic_dec(&eb->io_pages);
|
||||||
if (test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags))
|
if (test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags))
|
||||||
btree_readahead_hook(eb->fs_info, eb, eb->start, -EIO);
|
btree_readahead_hook(eb->fs_info, eb, -EIO);
|
||||||
return -EIO; /* we fixed nothing */
|
return -EIO; /* we fixed nothing */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -209,12 +209,8 @@ cleanup:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* start is passed separately in case eb in NULL, which may be the case with
|
|
||||||
* failed I/O
|
|
||||||
*/
|
|
||||||
int btree_readahead_hook(struct btrfs_fs_info *fs_info,
|
int btree_readahead_hook(struct btrfs_fs_info *fs_info,
|
||||||
struct extent_buffer *eb, u64 start, int err)
|
struct extent_buffer *eb, int err)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct reada_extent *re;
|
struct reada_extent *re;
|
||||||
|
@ -222,7 +218,7 @@ int btree_readahead_hook(struct btrfs_fs_info *fs_info,
|
||||||
/* find extent */
|
/* find extent */
|
||||||
spin_lock(&fs_info->reada_lock);
|
spin_lock(&fs_info->reada_lock);
|
||||||
re = radix_tree_lookup(&fs_info->reada_tree,
|
re = radix_tree_lookup(&fs_info->reada_tree,
|
||||||
start >> PAGE_SHIFT);
|
eb->start >> PAGE_SHIFT);
|
||||||
if (re)
|
if (re)
|
||||||
re->refcnt++;
|
re->refcnt++;
|
||||||
spin_unlock(&fs_info->reada_lock);
|
spin_unlock(&fs_info->reada_lock);
|
||||||
|
|
Loading…
Reference in New Issue