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

Commit c8e15130 authored by Theodore Ts'o's avatar Theodore Ts'o
Browse files

ext4: simplify calculation of blocks to free on error



In ext4_ext_map_blocks(), if we have successfully allocated the data
blocks, but then run into trouble inserting the extent into the extent
tree, most likely due to an ENOSPC condition, determine the arguments
to ext4_free_blocks() in a simpler way which is easier to prove to be
correct.

Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent 8acd5e9b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -4261,8 +4261,8 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
		/* not a good idea to call discard here directly,
		 * but otherwise we'd need to call it every free() */
		ext4_discard_preallocations(inode);
		ext4_free_blocks(handle, inode, NULL, ext4_ext_pblock(&newex),
				 ext4_ext_get_actual_len(&newex), fb_flags);
		ext4_free_blocks(handle, inode, NULL, newblock,
				 EXT4_C2B(sbi, allocated_clusters), fb_flags);
		goto out2;
	}