summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-07-30 12:46:53 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2019-08-09 16:41:08 -0400
commit8e7f0f7423e9c6bacb6f6944719d484fd92cc3ee (patch)
tree1c4daec135a846dc039cda110c24e65ca46cdf76
parentcdedd956f40fff2121705f91966a4f74a013a691 (diff)
bcachefs: Fix bch2_seek_data()
-rw-r--r--fs/bcachefs/fs-io.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c
index 7f11e8869a5a..a55436f0dcaa 100644
--- a/fs/bcachefs/fs-io.c
+++ b/fs/bcachefs/fs-io.c
@@ -2805,16 +2805,15 @@ static loff_t bch2_next_pagecache_data(struct inode *vinode,
pgoff_t index;
for (index = start_offset >> PAGE_SHIFT;
- index < end_offset >> PAGE_SHIFT;
- index++) {
+ index < end_offset >> PAGE_SHIFT;) {
if (find_get_pages(mapping, &index, 1, &page)) {
lock_page(page);
if (page_is_data(page))
end_offset =
min(end_offset,
- max(start_offset,
- ((loff_t) index) << PAGE_SHIFT));
+ max(start_offset,
+ ((loff_t) page->index) << PAGE_SHIFT));
unlock_page(page);
put_page(page);
} else {
@@ -2860,7 +2859,7 @@ static loff_t bch2_seek_data(struct file *file, u64 offset)
next_data = bch2_next_pagecache_data(&inode->v,
offset, next_data);
- if (next_data > isize)
+ if (next_data >= isize)
return -ENXIO;
return vfs_setpos(file, next_data, MAX_LFS_FILESIZE);