summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/bcachefs/buckets.c4
-rw-r--r--fs/btrfs/extent_io.c20
-rw-r--r--fs/fuse/file.c2
3 files changed, 11 insertions, 15 deletions
diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c
index 97a8af31ded1..026851ed761e 100644
--- a/fs/bcachefs/buckets.c
+++ b/fs/bcachefs/buckets.c
@@ -1501,6 +1501,10 @@ void bch2_trans_fs_usage_apply(struct btree_trans *trans,
}
}
+/*
+ * XXX account for compressed, uncompresed, incompressible sectors
+ */
+
/* trans_mark: */
static struct btree_iter *trans_get_update(struct btree_trans *trans,
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 60278e52c37a..27ca6e53c693 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -4389,28 +4389,20 @@ void extent_readahead(struct readahead_control *rac)
{
struct bio *bio = NULL;
unsigned long bio_flags = 0;
- struct page *pagepool[16];
struct extent_map *em_cached = NULL;
u64 prev_em_start = (u64)-1;
- int nr;
- while ((nr = readahead_page_batch(rac, pagepool))) {
- u64 contig_start = page_offset(pagepool[0]);
- u64 contig_end = page_offset(pagepool[nr - 1]) + PAGE_SIZE - 1;
+ u64 contig_start = (u64) rac->index << PAGE_SHIFT;
+ u64 contig_end = ((u64) (rac->index + rac->nr) << PAGE_SHIFT) - 1;
- ASSERT(contig_start + nr * PAGE_SIZE - 1 == contig_end);
-
- contiguous_readpages(pagepool, nr, contig_start, contig_end,
- &em_cached, &bio, &bio_flags, &prev_em_start);
- }
+ contiguous_readpages(rac->pagevec, rac->nr, contig_start, contig_end,
+ &em_cached, &bio, &bio_flags, &prev_em_start);
if (em_cached)
free_extent_map(em_cached);
- if (bio) {
- if (submit_one_bio(bio, 0, bio_flags))
- return;
- }
+ if (bio)
+ submit_one_bio(bio, 0, bio_flags);
}
/*
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 83d917f7e542..bc384cdca6b0 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -958,7 +958,7 @@ static void fuse_readahead(struct readahead_control *rac)
return;
ap = &ia->ap;
nr_pages = __readahead_batch(rac, ap->pages, nr_pages);
- for (i = 0; i < nr_pages; i++) {
+ for (i = 0; i < rac->nr; i++) {
fuse_wait_on_page_writeback(inode,
readahead_index(rac) + i);
ap->descs[i].length = PAGE_SIZE;