Re: [libvirt] [PATCH v7 01/13] virstoragefile: Add virStorageSourceGetBackingStore

2015-12-16 Thread Matthias Gatto
On Mon, Dec 14, 2015 at 10:57 PM, John Ferlan  wrote:
>
>
> On 12/03/2015 09:35 AM, Matthias Gatto wrote:
>> Create virStorageSourceGetBackingStore function in
>> preparation for quorum:
>> Actually, if we want to get a backing store inside a virStorageSource
>> we have to do it manually(src->backingStore = backingStore).
>> The problem is that with a quorum, a virStorageSource
>> can contain multiple backing stores, and src->backingStore can
>> be treated as a virStorageSourcePtr or a virStorageSourcePtrPtr.
>>
>> Due to these reason, we need to simplify the manipulation of
>> virStorageSource, and create a function to get the asked
>> backingStore in a virStorageSource
>>
>> For now, this function only return the backingStore field
>
> More simply said -
>
> Create helper virStorageSourceGetBackingStore in order to make it easier
> to access the storage backingStore pointer. Future patches will adjust
> the backingStore pointer to become a table or list of backingStorePtr's
>
>
> [Sure you're doing it because of the quorum changes, but it's
> essentially creating an accessor function]
>>
>> Signed-off-by: Matthias Gatto 
>> ---
>>  src/libvirt_private.syms  |  1 +
>>  src/util/virstoragefile.c | 10 ++
>>  src/util/virstoragefile.h |  3 +++
>>  3 files changed, 14 insertions(+)
>>
>> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
>> index dd085c3..5354a4a 100644
>> --- a/src/libvirt_private.syms
>> +++ b/src/libvirt_private.syms
>> @@ -2190,6 +2190,7 @@ virStorageSourceClear;
>>  virStorageSourceCopy;
>>  virStorageSourceFree;
>>  virStorageSourceGetActualType;
>> +virStorageSourceGetBackingStore;
>>  virStorageSourceGetSecurityLabelDef;
>>  virStorageSourceInitChainElement;
>>  virStorageSourceIsEmpty;
>> diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
>> index 2aa1d90..016beaa 100644
>> --- a/src/util/virstoragefile.c
>> +++ b/src/util/virstoragefile.c
>> @@ -1809,6 +1809,16 @@ virStorageSourcePoolDefCopy(const 
>> virStorageSourcePoolDef *src)
>>  }
>>
>>
>> +virStorageSourcePtr
>> +virStorageSourceGetBackingStore(const virStorageSource *src,
>> +size_t pos ATTRIBUTE_UNUSED)
>> +{
>> +if (!src)
>
> I think perhaps Peter's point from his review is
>
> if (!src || pos > 0)
>
> IOW: range checking for pos
>
> Eventually patch 5 will make a real check...
>
> In order to make some progress on this series - at least the first 5 or
> 6 patches - I can make the change if that is what Peter had in mind...
>
> John
>> +return NULL;
>> +return src->backingStore;
>> +}
>> +
>> +
>>  /**
>>   * virStorageSourcePtr:
>>   *
>> diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
>> index b98fe25..8cd4854 100644
>> --- a/src/util/virstoragefile.h
>> +++ b/src/util/virstoragefile.h
>> @@ -289,6 +289,9 @@ struct _virStorageSource {
>>  #  define DEV_BSIZE 512
>>  # endif
>>
>> +virStorageSourcePtr virStorageSourceGetBackingStore(const virStorageSource 
>> *src,
>> +size_t pos);
>> +
>>  int virStorageFileProbeFormat(const char *path, uid_t uid, gid_t gid);
>>  int virStorageFileProbeFormatFromBuf(const char *path,
>>   char *buf,
>>

Thank you for the review, and your changes on v8.
Sorry for the check, I was thinking it unnecessary because we do it on patch 5.

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v7 01/13] virstoragefile: Add virStorageSourceGetBackingStore

2015-12-14 Thread John Ferlan


On 12/03/2015 09:35 AM, Matthias Gatto wrote:
> Create virStorageSourceGetBackingStore function in
> preparation for quorum:
> Actually, if we want to get a backing store inside a virStorageSource
> we have to do it manually(src->backingStore = backingStore).
> The problem is that with a quorum, a virStorageSource
> can contain multiple backing stores, and src->backingStore can
> be treated as a virStorageSourcePtr or a virStorageSourcePtrPtr.
> 
> Due to these reason, we need to simplify the manipulation of
> virStorageSource, and create a function to get the asked
> backingStore in a virStorageSource
> 
> For now, this function only return the backingStore field

More simply said -

Create helper virStorageSourceGetBackingStore in order to make it easier
to access the storage backingStore pointer. Future patches will adjust
the backingStore pointer to become a table or list of backingStorePtr's


[Sure you're doing it because of the quorum changes, but it's
essentially creating an accessor function]
> 
> Signed-off-by: Matthias Gatto 
> ---
>  src/libvirt_private.syms  |  1 +
>  src/util/virstoragefile.c | 10 ++
>  src/util/virstoragefile.h |  3 +++
>  3 files changed, 14 insertions(+)
> 
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index dd085c3..5354a4a 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -2190,6 +2190,7 @@ virStorageSourceClear;
>  virStorageSourceCopy;
>  virStorageSourceFree;
>  virStorageSourceGetActualType;
> +virStorageSourceGetBackingStore;
>  virStorageSourceGetSecurityLabelDef;
>  virStorageSourceInitChainElement;
>  virStorageSourceIsEmpty;
> diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
> index 2aa1d90..016beaa 100644
> --- a/src/util/virstoragefile.c
> +++ b/src/util/virstoragefile.c
> @@ -1809,6 +1809,16 @@ virStorageSourcePoolDefCopy(const 
> virStorageSourcePoolDef *src)
>  }
>  
>  
> +virStorageSourcePtr
> +virStorageSourceGetBackingStore(const virStorageSource *src,
> +size_t pos ATTRIBUTE_UNUSED)
> +{
> +if (!src)

I think perhaps Peter's point from his review is

if (!src || pos > 0)

IOW: range checking for pos

Eventually patch 5 will make a real check...

In order to make some progress on this series - at least the first 5 or
6 patches - I can make the change if that is what Peter had in mind...

John
> +return NULL;
> +return src->backingStore;
> +}
> +
> +
>  /**
>   * virStorageSourcePtr:
>   *
> diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
> index b98fe25..8cd4854 100644
> --- a/src/util/virstoragefile.h
> +++ b/src/util/virstoragefile.h
> @@ -289,6 +289,9 @@ struct _virStorageSource {
>  #  define DEV_BSIZE 512
>  # endif
>  
> +virStorageSourcePtr virStorageSourceGetBackingStore(const virStorageSource 
> *src,
> +size_t pos);
> +
>  int virStorageFileProbeFormat(const char *path, uid_t uid, gid_t gid);
>  int virStorageFileProbeFormatFromBuf(const char *path,
>   char *buf,
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH v7 01/13] virstoragefile: Add virStorageSourceGetBackingStore

2015-12-03 Thread Matthias Gatto
Create virStorageSourceGetBackingStore function in
preparation for quorum:
Actually, if we want to get a backing store inside a virStorageSource
we have to do it manually(src->backingStore = backingStore).
The problem is that with a quorum, a virStorageSource
can contain multiple backing stores, and src->backingStore can
be treated as a virStorageSourcePtr or a virStorageSourcePtrPtr.

Due to these reason, we need to simplify the manipulation of
virStorageSource, and create a function to get the asked
backingStore in a virStorageSource

For now, this function only return the backingStore field

Signed-off-by: Matthias Gatto 
---
 src/libvirt_private.syms  |  1 +
 src/util/virstoragefile.c | 10 ++
 src/util/virstoragefile.h |  3 +++
 3 files changed, 14 insertions(+)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index dd085c3..5354a4a 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2190,6 +2190,7 @@ virStorageSourceClear;
 virStorageSourceCopy;
 virStorageSourceFree;
 virStorageSourceGetActualType;
+virStorageSourceGetBackingStore;
 virStorageSourceGetSecurityLabelDef;
 virStorageSourceInitChainElement;
 virStorageSourceIsEmpty;
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 2aa1d90..016beaa 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -1809,6 +1809,16 @@ virStorageSourcePoolDefCopy(const 
virStorageSourcePoolDef *src)
 }
 
 
+virStorageSourcePtr
+virStorageSourceGetBackingStore(const virStorageSource *src,
+size_t pos ATTRIBUTE_UNUSED)
+{
+if (!src)
+return NULL;
+return src->backingStore;
+}
+
+
 /**
  * virStorageSourcePtr:
  *
diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
index b98fe25..8cd4854 100644
--- a/src/util/virstoragefile.h
+++ b/src/util/virstoragefile.h
@@ -289,6 +289,9 @@ struct _virStorageSource {
 #  define DEV_BSIZE 512
 # endif
 
+virStorageSourcePtr virStorageSourceGetBackingStore(const virStorageSource 
*src,
+size_t pos);
+
 int virStorageFileProbeFormat(const char *path, uid_t uid, gid_t gid);
 int virStorageFileProbeFormatFromBuf(const char *path,
  char *buf,
-- 
2.6.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list