From 8b555ae64eca35bf385c70188bae2eb82cef86ce Mon Sep 17 00:00:00 2001 From: Chris Mason Date: Wed, 6 Mar 2013 19:46:29 -0500 Subject: [PATCH] --- yaml --- r: 361008 b: refs/heads/master c: 2cc65e3e57d636a159d92945655b1574e47dba63 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/btrfs/inode.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index c86694a0d97a..6af6c3112e8b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b53157aac7366cea413ee29b629f83225829e87 +refs/heads/master: 2cc65e3e57d636a159d92945655b1574e47dba63 diff --git a/trunk/fs/btrfs/inode.c b/trunk/fs/btrfs/inode.c index ecd9c4cdb0db..13ab4de0a400 100644 --- a/trunk/fs/btrfs/inode.c +++ b/trunk/fs/btrfs/inode.c @@ -8502,6 +8502,7 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode, struct btrfs_key ins; u64 cur_offset = start; u64 i_size; + u64 cur_bytes; int ret = 0; bool own_trans = true; @@ -8516,8 +8517,9 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode, } } - ret = btrfs_reserve_extent(trans, root, - min(num_bytes, 256ULL * 1024 * 1024), + cur_bytes = min(num_bytes, 256ULL * 1024 * 1024); + cur_bytes = max(cur_bytes, min_size); + ret = btrfs_reserve_extent(trans, root, cur_bytes, min_size, 0, *alloc_hint, &ins, 1); if (ret) { if (own_trans)