Skip to contentSkip to conversation

iscsi: do not assume device is zero initialized

PATCH Applied Peter Lieven 2 participants 3 messages Nov 17, 2012 – Nov 19, 2012 Block layer

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 iscsi: do not assume device is zero initialized

Without any complex checks we can't assume that an iscsi target is initialized to zero.

---
 block/iscsi.c |    6 ++++++
 1 file changed, 6 insertions(+)
block/iscsi.c +6 -0
index eb586cb..d685f20 100644
@@ -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,
Signature · 1 line
1.7.9.5
#1 lore raw

Il 17/11/2012 16:20, Peter Lieven ha scritto:

Quoted 26 lines

Without any complex checks we can't assume that an iscsi target is initialized to zero.

---
 block/iscsi.c |    6 ++++++
 1 file changed, 6 insertions(+)
block/iscsi.c +5 -0
index eb586cb..d685f20 100644
@@ -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,

block/iscsi.c static BlockDriver bdrv_iscsi = { · line 1028

Quoted 7 lines
block/iscsi.c +1 -0
@@ -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

#2 lore raw

Am 19.11.2012 um 09:25 schrieb Paolo Bonzini <[email protected]>:

Quoted 28 lines

Il 17/11/2012 16:20, Peter Lieven ha scritto:

Quoted 27 lines

Without any complex checks we can't assume that an iscsi target is initialized to zero.

---
block/iscsi.c | 6 ++++++

1 file changed, 6 insertions(+)
block/iscsi.c +5 -0
index eb586cb..d685f20 100644
@@ -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,
 
Quoted 8 lines

block/iscsi.c static BlockDriver bdrv_iscsi = { · line 1028

Quoted 6 lines
block/iscsi.c +1 -0
    .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

Quoted 2 lines

Paolo