]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: only free reserved extent if we didn't insert it
authorJosef Bacik <josef@toxicpanda.com>
Thu, 11 Oct 2018 19:54:21 +0000 (15:54 -0400)
committerDavid Sterba <dsterba@suse.com>
Fri, 19 Oct 2018 10:20:03 +0000 (12:20 +0200)
commitd9d056492ebfac0d1f3bc84438a2cac7ac4ff4e5
tree857e78f94bed8f2024aa9468aeaee91efaa4bca7
parentcd0e92e31aff44688f8bd0f7ed41e7639d900e34
btrfs: only free reserved extent if we didn't insert it

When we insert the file extent once the ordered extent completes we free
the reserved extent reservation as it'll have been migrated to the
bytes_used counter.  However if we error out after this step we'll still
clear the reserved extent reservation, resulting in a negative
accounting of the reserved bytes for the block group and space info.
Fix this by only doing the free if we didn't successfully insert a file
extent for this extent.

CC: stable@vger.kernel.org # 4.14+
Reviewed-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c