qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [Qemu-devel] [PATCH 5/5] block: Move request_alignment


From: Eric Blake
Subject: Re: [Qemu-block] [Qemu-devel] [PATCH 5/5] block: Move request_alignment into BlockLimit
Date: Fri, 3 Jun 2016 15:43:04 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 06/03/2016 11:49 AM, Eric Blake wrote:
> On 06/03/2016 11:03 AM, Eric Blake wrote:
>> It makes more sense to have ALL block size limit constraints
>> in the same struct.  Improve the documentation while at it.
>>
>> Note that bdrv_refresh_limits() has to keep things alive across
>> a memset() of BlockLimits.
>>
>> Signed-off-by: Eric Blake <address@hidden>
>> ---
>>  include/block/block_int.h | 12 ++++++++----
>>  block.c                   |  4 ++--
>>  block/blkdebug.c          |  4 ++--
>>  block/bochs.c             |  2 +-
>>  block/cloop.c             |  2 +-
>>  block/dmg.c               |  2 +-
>>  block/io.c                | 12 +++++++-----
>>  block/iscsi.c             |  2 +-
>>  block/raw-posix.c         | 16 ++++++++--------
>>  block/raw-win32.c         |  6 +++---
>>  block/vvfat.c             |  2 +-
>>  11 files changed, 35 insertions(+), 29 deletions(-)
> 
> Something in this patch is causing qemu-iotests 77 to infloop; we may
> decide it is just easier to drop this patch rather than find all the
> places where the request_alignment must be preserved across what
> otherwise zeroes out limits.

Found it; squash this in (or use it as an argument why we don't want
request_alignment in bs->bl after all):

diff --git i/block/raw_bsd.c w/block/raw_bsd.c
index b1d5237..c3c2246 100644
--- i/block/raw_bsd.c
+++ w/block/raw_bsd.c
@@ -152,7 +152,11 @@ static int raw_get_info(BlockDriverState *bs,
BlockDriverInfo *bdi)

 static void raw_refresh_limits(BlockDriverState *bs, Error **errp)
 {
+    /* Inherit all limits except for request_alignment */
+    int request_alignment = bs->bl.request_alignment;
+
     bs->bl = bs->file->bs->bl;
+    bs->bl.request_alignment = request_alignment;
 }

 static int raw_truncate(BlockDriverState *bs, int64_t offset)

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]