On 09/23/2010 05:41 PM, Stefan Hajnoczi wrote:
This patch implements the read/write state machine. Operations are
fully asynchronous and multiple operations may be active at any time.
Allocating writes are serialized to make metadata updates consistent.
For example, two write requests to the same unallocated cluster should
only allocate the new cluster once and then update it, rather than
racing to allocate the cluster twice and losing on of the writes. This
scheme can be made more fine-grained in the future so that independent
metadata updates can be active at the same time.
A comment re prefill-postfill - it seems to generate excessive I/O, for
example an allocating write into the middle of a cluster will generate
two reads (if a backing file exists) and three writes. It would be
simpler and more efficient to read the backing cluster, splice in the
guest iovec, and issue a single write. That is one read and two writes
fewer.
(assuming I read the code right)
--
error compiling committee.c: too many arguments to function