Hello, I am trying to understand the COW mechanism in Btrfs. Is it correct to say that unless nodatacow option is specified, Btrfs always performs COW for all the data+metadata extents used in the system? I saw that COWing is implemented in btrfs_cow_block() function, which is called at the time of searching a slot for a particular item, while inserting into a new slot, committing transactions, while creating pending snapshots and few other places. However, while tracing through the complete write path, I could not quite figure out when extents actually get COWed. Could you please point me to the place where COWing takes place? Is there any time when, for performance or any other reasons, the extents are not COWed but overwritten in place (apart from the explicit nodatacow flag being set during mount)? Thanks, Aastha. -- 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
