diff options
author | Miao Xie <miaox@cn.fujitsu.com> | 2011-09-11 10:52:24 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2011-09-11 10:52:24 -0400 |
commit | 5b397377e97d436fc2ed872fc53f85395bb984e0 (patch) | |
tree | ad51702bd7e7357cdf1f1f4fef3999e0127bb192 /fs | |
parent | 98c9942aca05fff198cd5ca629599cd193444809 (diff) | |
download | linux-5b397377e97d436fc2ed872fc53f85395bb984e0.tar.gz linux-5b397377e97d436fc2ed872fc53f85395bb984e0.tar.bz2 linux-5b397377e97d436fc2ed872fc53f85395bb984e0.zip |
Btrfs: fix unclosed transaction handle in btrfs_cont_expand
The function - btrfs_cont_expand() forgot to close the transaction handle before
it jump out the while loop. Fix it.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/inode.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index edd45f709989..c257af2ce9cb 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -3510,15 +3510,19 @@ int btrfs_cont_expand(struct inode *inode, loff_t oldsize, loff_t size) err = btrfs_drop_extents(trans, inode, cur_offset, cur_offset + hole_size, &hint_byte, 1); - if (err) + if (err) { + btrfs_end_transaction(trans, root); break; + } err = btrfs_insert_file_extent(trans, root, btrfs_ino(inode), cur_offset, 0, 0, hole_size, 0, hole_size, 0, 0, 0); - if (err) + if (err) { + btrfs_end_transaction(trans, root); break; + } btrfs_drop_extent_cache(inode, hole_start, last_byte - 1, 0); |