On 01/19/2017 09:49 AM, Daniel P. Berrange wrote: > On Thu, Jan 19, 2017 at 10:38:14PM +0800, Fam Zheng wrote: >> This implements open flag sensible image locking for local file >> and host device protocol. >> >> virtlockd in libvirt locks the first byte, so we start looking at the >> file bytes from 1. >> >> Quoting what was proposed by Kevin Wolf <kw...@redhat.com>, there are >> four locking modes by combining two bits (BDRV_O_RDWR and >> BDRV_O_SHARE_RW), and implemented by taking two locks: >>
>> +/* Posix file locking bytes. Libvirt takes byte 0, so start from byte 1. */ >> +#define RAW_LOCK_BYTE_MIN 1 >> +#define RAW_LOCK_BYTE_NO_OTHER_WRITER 1 >> +#define RAW_LOCK_BYTE_WRITE 2 > > ...would you mind if QEMU started from say byte 10, leaving the first 10 > reserved for libvirt uses. This lets libvirt have a continuous space for > its own usage if we want to use more bytes Thankfully, fcntl() locks can be taken beyond end-of-file, so I think we're okay making an arbitrarily larger range of bytes reserved for each process, even in the unlikely corner case of passing files smaller than 512 bytes. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature