Btrfs: fix off-by-one error of the same page check in btrfs_punch_hole()
PATCH 3/6 Btrfs: fix off-by-one error of the same page check in btrfs_punch_hole()
(start + len) is the start of the adjacent extent, not the end of the current extent, so we should not use it to check the hole is on the same page or not.
Signed-off-by Miao Xie <[email protected]>
--- fs/btrfs/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
fs/btrfs/file.c +2 -2
@@ -1881,8 +1881,8 @@ static int btrfs_punch_hole(struct inode *inode, loff_t offset, loff_t len)unsigned long nr;int ret =0 ;int err =0 ; -bool same_page = (offset >>PAGE_CACHE_SHIFT ) == - ((offset + len) >>PAGE_CACHE_SHIFT ); +bool same_page = ((offset >>PAGE_CACHE_SHIFT ) == + ((offset + len -1 ) >>PAGE_CACHE_SHIFT ));btrfs_wait_ordered_range (inode, offset, len);
Signature · 1 line
1.7.11.7