Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be2d253c authored by Filipe Manana's avatar Filipe Manana
Browse files

Btrfs: fix extent map leak during fallocate error path



If the call to btrfs_qgroup_reserve_data() failed, we were leaking an
extent map structure. The failure can happen either due to an -ENOMEM
condition or, when quotas are enabled, due to -EDQUOT for example.

Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
parent 1c81ba23
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2856,8 +2856,10 @@ static long btrfs_fallocate(struct file *file, int mode,
			}
			ret = btrfs_qgroup_reserve_data(inode, cur_offset,
					last_byte - cur_offset);
			if (ret < 0)
			if (ret < 0) {
				free_extent_map(em);
				break;
			}
		} else {
			/*
			 * Do not need to reserve unwritten extent for this