[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH v10 14/16] file-posix: Implement im
From: |
Eric Blake |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH v10 14/16] file-posix: Implement image locking |
Date: |
Thu, 19 Jan 2017 10:19:29 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 |
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 <address@hidden>, 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
- [Qemu-block] [PATCH v10 06/16] iotests: 055: Don't attach the drive to vm for drive-backup, (continued)
- [Qemu-block] [PATCH v10 06/16] iotests: 055: Don't attach the drive to vm for drive-backup, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 07/16] iotests: 030: Read-only open image for getting map, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 08/16] iotests: 087: Don't attach test image twice, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 09/16] iotests: 085: Avoid image locking conflict, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 10/16] iotests: 091: Quit QEMU before checking image, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 11/16] iotests: 172: Use separate images for multiple devices, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 12/16] tests: Use null-co:// instead of /dev/null as the dummy image, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 13/16] tests: Disable image lock in test-replication, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 14/16] file-posix: Implement image locking, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 15/16] qcow2: Force "no other writer" lock on bs->file, Fam Zheng, 2017/01/19
- [Qemu-block] [PATCH v10 16/16] tests: Add test-image-lock, Fam Zheng, 2017/01/19