Patchwork iscsi: do not assume device is zero initialized

login
register
mail settings
Submitter Peter Lieven
Date Nov. 17, 2012, 3:20 p.m.
Message ID <50A7AB3C.4070902@dlhnet.de>
Download mbox | patch
Permalink /patch/199858/
State New
Headers show

Comments

Peter Lieven - Nov. 17, 2012, 3:20 p.m.
Without any complex checks we can't assume that an
iscsi target is initialized to zero.

Signed-off-by: Peter Lieven <pl@kamp.de>
---
 block/iscsi.c |    6 ++++++
 1 file changed, 6 insertions(+)
Paolo Bonzini - Nov. 19, 2012, 8:25 a.m.
Il 17/11/2012 16:20, Peter Lieven ha scritto:
> Without any complex checks we can't assume that an
> iscsi target is initialized to zero.
> 
> Signed-off-by: Peter Lieven <pl@kamp.de>
> ---
>  block/iscsi.c |    6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/block/iscsi.c b/block/iscsi.c
> index eb586cb..d685f20 100644
> --- a/block/iscsi.c
> +++ b/block/iscsi.c
> @@ -991,6 +991,11 @@ out:
>      return ret;
>  }
>  
> +static int iscsi_has_zero_init(BlockDriverState *bs)
> +{
> +    return 0;
> +}
> +
>  static QEMUOptionParameter iscsi_create_options[] = {
>      {
>          .name = BLOCK_OPT_SIZE,
> @@ -1017,6 +1022,7 @@ static BlockDriver bdrv_iscsi = {
>      .bdrv_aio_flush  = iscsi_aio_flush,
>  
>      .bdrv_aio_discard = iscsi_aio_discard,
> +    .bdrv_has_zero_init = iscsi_has_zero_init,    
>  
>  #ifdef __linux__
>      .bdrv_ioctl       = iscsi_ioctl,
> 

Applied to scsi-next branch.

Paolo
Peter Lieven - Nov. 19, 2012, 10:09 a.m.
Am 19.11.2012 um 09:25 schrieb Paolo Bonzini <pbonzini@redhat.com>:

> Il 17/11/2012 16:20, Peter Lieven ha scritto:
>> Without any complex checks we can't assume that an
>> iscsi target is initialized to zero.
>> 
>> Signed-off-by: Peter Lieven <pl@kamp.de>
>> ---
>> block/iscsi.c |    6 ++++++
>> 1 file changed, 6 insertions(+)
>> 
>> diff --git a/block/iscsi.c b/block/iscsi.c
>> index eb586cb..d685f20 100644
>> --- a/block/iscsi.c
>> +++ b/block/iscsi.c
>> @@ -991,6 +991,11 @@ out:
>>     return ret;
>> }
>> 
>> +static int iscsi_has_zero_init(BlockDriverState *bs)
>> +{
>> +    return 0;
>> +}
>> +
>> static QEMUOptionParameter iscsi_create_options[] = {
>>     {
>>         .name = BLOCK_OPT_SIZE,
>> @@ -1017,6 +1022,7 @@ static BlockDriver bdrv_iscsi = {
>>     .bdrv_aio_flush  = iscsi_aio_flush,
>> 
>>     .bdrv_aio_discard = iscsi_aio_discard,
>> +    .bdrv_has_zero_init = iscsi_has_zero_init,    
>> 
>> #ifdef __linux__
>>     .bdrv_ioctl       = iscsi_ioctl,
>> 
> 
> Applied to scsi-next branch.

Thank you. 

Wouldn`t it be better to have has_zero_init == 0 as default and set it to 1 for the backends
that support it?

Peter


> 
> Paolo

Patch

diff --git a/block/iscsi.c b/block/iscsi.c
index eb586cb..d685f20 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -991,6 +991,11 @@  out:
     return ret;
 }
 
+static int iscsi_has_zero_init(BlockDriverState *bs)
+{
+    return 0;
+}
+
 static QEMUOptionParameter iscsi_create_options[] = {
     {
         .name = BLOCK_OPT_SIZE,
@@ -1017,6 +1022,7 @@  static BlockDriver bdrv_iscsi = {
     .bdrv_aio_flush  = iscsi_aio_flush,
 
     .bdrv_aio_discard = iscsi_aio_discard,
+    .bdrv_has_zero_init = iscsi_has_zero_init,    
 
 #ifdef __linux__
     .bdrv_ioctl       = iscsi_ioctl,