Btrfs: fix off-by-one error of the reserved size of btrfs_allocate()
PATCH 2/2 Btrfs: fix off-by-one error of the reserved size of btrfs_allocate()
alloc_end is not the real end of the current extent, it is the start of the next adjoining extent. So we needn't +1 when calculating the size the space that is about to be reserved.
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
@@ -2085,7 +2085,7 @@ static long btrfs_fallocate(struct file *file, int mode,* Make sure we have enough space before we do the * allocation. */ - ret =btrfs_check_data_free_space (inode, alloc_end - alloc_start +1 ); + ret =btrfs_check_data_free_space (inode, alloc_end - alloc_start);if (ret)return ret;
@@ -2192,7 +2192,7 @@ static long btrfs_fallocate(struct file *file, int mode, out:mutex_unlock (&inode->i_mutex);/* Let go of our reservation. */ -btrfs_free_reserved_data_space (inode, alloc_end - alloc_start +1 ); +btrfs_free_reserved_data_space (inode, alloc_end - alloc_start);return ret; }
Signature · 1 line
1.7.11.7
Quoted 4 lines · Miao Xie
alloc_endis not the real end of the current extent, it is the start of the next adjoining extent. So we needn't +1 when calculating the size the space that is about to be reserved.
Good catch.
Reviewed-by Liu Bo <[email protected]>
thanks,
liubo
Quoted 33 lines
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@@ -2085,7 +2085,7 @@ static long btrfs_fallocate(struct file *file, int mode,* Make sure we have enough space before we do the * allocation. */ - ret =btrfs_check_data_free_space (inode, alloc_end - alloc_start +1 ); + ret =btrfs_check_data_free_space (inode, alloc_end - alloc_start);if (ret)return ret;@@ -2192,7 +2192,7 @@ static long btrfs_fallocate(struct file *file, int mode, out:mutex_unlock (&inode->i_mutex);/* Let go of our reservation. */ -btrfs_free_reserved_data_space (inode, alloc_end - alloc_start +1 ); +btrfs_free_reserved_data_space (inode, alloc_end - alloc_start);return ret; }Signature · 5 lines
1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html