qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/3] block: set bs->read_only before .bdrv_open(


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH 2/3] block: set bs->read_only before .bdrv_open()
Date: Thu, 27 Oct 2011 11:41:04 +0100

On Thu, Oct 27, 2011 at 11:18 AM, Kevin Wolf <address@hidden> wrote:
> Am 27.10.2011 11:54, schrieb Stefan Hajnoczi:
>> Several block drivers set bs->read_only in .bdrv_open() but
>> block.c:bdrv_open_common() clobbers its value.  Additionally, QED uses
>> bdrv_is_read_only() in .bdrv_open() to decide whether to perform
>> consistency checks.
>>
>> The correct ordering is to initialize bs->read_only from the open flags
>> before calling .bdrv_open().  This way block drivers can override it if
>> necessary and can use bdrv_is_read_only() in .bdrv_open().
>>
>> Signed-off-by: Stefan Hajnoczi <address@hidden>
>> ---
>>  block.c |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/block.c b/block.c
>> index 70aab63..3207e99 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -500,6 +500,8 @@ static int bdrv_open_common(BlockDriverState *bs, const 
>> char *filename,
>>          open_flags |= BDRV_O_RDWR;
>>      }
>> +    bs->keep_read_only = bs->read_only = !(open_flags & BDRV_O_RDWR);
>> +
>>      /* Open the image, either directly or using a protocol */
>>      if (drv->bdrv_file_open) {
>>          ret = drv->bdrv_file_open(bs, filename, open_flags);
>> @@ -514,8 +516,6 @@ static int bdrv_open_common(BlockDriverState *bs, const 
>> char *filename,
>>          goto free_and_fail;
>>      }
>>
>> -    bs->keep_read_only = bs->read_only = !(open_flags & BDRV_O_RDWR);
>> -
>
> The assignment was already at the new place before 4dca4b6. Not sure if
> there was any real reason for moving it, though.

Naphtali: any ideas why your commit needed to move bs->read_only assignment?

Stefan



reply via email to

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