On Mon, Feb 25, 2013 at 08:15:40AM -0700, Aastha Mehta wrote: > Thanks again Josef. > > I understood that cow_file_range is called for a regular file. Just to > clarify, in cow_file_range is cow done at the time of reserving > extents in the extent btree for the io to be done in this delalloc? I > see the following comment above find_free_extent() which is called > while trying to reserve extents: > > /* > * walks the btree of allocated extents and find a hole of a given size. > * The key ins is changed to record the hole: > * ins->objectid == block start > * ins->flags = BTRFS_EXTENT_ITEM_KEY > * ins->offset == number of blocks > * Any available blocks before search_start are skipped. > */ > > This seems to be the only place where a cow might be done, because a > key is being inserted into an extent which modifies it. > The key isn't inserted at this time, it's just returned with those values for us to do as we please. There is no update of the btree until insert_reserved_extent/btrfs_mark_extent_written in btrfs_finish_ordered_io. Thanks, Josef -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
