diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 652b4dc5dfcb73441bc82087ebebc37935fa0a6a..36a0f177ecade96f361af19e7c304972f1283e61 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4171,12 +4171,12 @@ int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
 		ext4_ext_drop_refs(path);
 		kfree(path);
 	}
-	trace_ext4_ext_map_blocks_exit(inode, map->m_lblk,
-		newblock, map->m_len, err ? err : allocated);
-
 	result = (flags & EXT4_GET_BLOCKS_PUNCH_OUT_EXT) ?
 			punched_out : allocated;
 
+	trace_ext4_ext_map_blocks_exit(inode, map->m_lblk,
+		newblock, map->m_len, err ? err : result);
+
 	return err ? err : result;
 }