<div id="geary-body" dir="auto"><div>Dear all,</div><div><br></div><div>in osd-zfs/osd_io.c:osd_bufs_get_write you can find a comment regarding zerocopy:</div><div><br></div><div><div><span class="Apple-tab-span" style="white-space:pre">       </span>/*</div><div><span class="Apple-tab-span" style="white-space:pre">   </span> * currently only full blocks are subject to zerocopy approach:</div><div><span class="Apple-tab-span" style="white-space:pre">      </span> * so that we're sure nobody is trying to update the same block</div><div><span class="Apple-tab-span" style="white-space:pre">      </span> */</div></div><div><br></div><div>Whenever a block to be written is full, an arc buffer is requested, otherwise alloc_page.</div><div><br></div><div>I do not really understand the conclusion. Why and how do full blocks prevent updates?</div><div>And put it differently - why not to try zerocopy for not full blocks?</div><div>What could happen if I tried to request an arc buffer for e.g. a block with missin
 g last page?</div><div><br></div><div>I would be greateful for details.</div><div>Best regards</div><div>Anna</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>