Miao Xie
2012-Nov-28 10:28 UTC
[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 <miaox@cn.fujitsu.com> --- fs/btrfs/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 641bbaa..bd5afcc 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -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; } -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Liu Bo
2012-Nov-28 10:49 UTC
Re: [PATCH 2/2] Btrfs: fix off-by-one error of the reserved size of btrfs_allocate()
On Wed, Nov 28, 2012 at 06:28:54PM +0800, Miao Xie wrote:> 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. >Good catch. Reviewed-by: Liu Bo <bo.li.liu@oracle.com> thanks, liubo> Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> > --- > fs/btrfs/file.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c > index 641bbaa..bd5afcc 100644 > --- a/fs/btrfs/file.c > +++ b/fs/btrfs/file.c > @@ -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; > } > > -- > 1.7.11.7 > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html-- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html