Hi, all currently I find that when do copy on write for a clone image. librbd call the cls copyup function to write the data, reading from its parent, to the child. However, there is a issue here: if an object in the parent image --> [0, 8192] with data and [8192, end] without data, then after COW operation, it will filling the whole object [0, end] to the children object with [8192, end] all zeros. This phenomenon also occurs in flatten images. Actually, we already have sparse_read to just read data without holes. However, copyup function does not support to write serveral fragments such as {[0, 8192], [16384,20480]}. So it that possible to direct send OSDOp {[cow write], [cow write], [user write]} instead of OSDOp {[copyup], [user write]} ? Regards Ning Yao -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html