mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
bcachefs: Don't return 0 size holes from bch2_seek_hole()
The hole we find in the btree might be fully dirty in the page cache. If so, keep searching. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
1f4bb8254c
commit
af3d4c276a
|
|
@ -1008,10 +1008,19 @@ static loff_t bch2_seek_hole(struct file *file, u64 offset)
|
|||
? MAX_LFS_FILESIZE
|
||||
: k.k->p.offset << 9;
|
||||
|
||||
/*
|
||||
* Found a hole in the btree, now make sure it's
|
||||
* a hole in the pagecache. We might have to
|
||||
* keep searching if this hole is entirely dirty
|
||||
* in the page cache:
|
||||
*/
|
||||
bch2_trans_unlock(trans);
|
||||
next_hole = bch2_seek_pagecache_hole(&inode->v,
|
||||
start_offset, end_offset, 0, false);
|
||||
break;
|
||||
loff_t pagecache_hole = bch2_seek_pagecache_hole(&inode->v,
|
||||
start_offset, end_offset, 0, false);
|
||||
if (pagecache_hole < end_offset) {
|
||||
next_hole = pagecache_hole;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
offset = max(offset, bkey_start_offset(k.k) << 9);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user