Hi,<br><br>I am trying to implement copy on write operation by reading the original disk block and writing it to some other location and then allowing the write to pass though (block the write operation till the read completes) I tried using submit_bio() / sb_bread() to read the block and using the completion API to signal the end of reading the block but the performance of this is very bad. It takes around 12 times more time for any disk writes. Is there any better way to improve the performance ?<br>

<br>Not waiting for the completion of the read operation and letting the disk write go through gives good performance but under 10% of the cases the read happens after the write and ends up the the new data and not the original data.<br>

<br>Regards.<br>