diff options
| author | Avra Sengupta <asengupt@redhat.com> | 2014-02-19 16:30:11 +0530 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2014-04-11 16:29:17 -0700 | 
| commit | 29bccc2ed18eedc40e83d2f0d35327037a322384 (patch) | |
| tree | 207829c5a0535af28cbad6de90497d2f48093d1a /libglusterfs/src/list.h | |
| parent | 2045c9ea1c7c3aac9d377070df6f0ee99619f421 (diff) | |
gluster: GlusterFS Volume Snapshot Feature
This is the initial patch for the Snapshot feature. Current patch
includes following features:
* Snapshot create
* Snapshot delete
* Snapshot restore
* Snapshot list
* Snapshot info
* Snapshot status
* Snapshot config
Change-Id: I2f46920c0d61c515f6a60e0f8b46fff886d9f6a9
BUG: 1061685
Signed-off-by: shishir gowda <sgowda@redhat.com>
Signed-off-by: Sachin Pandit <spandit@redhat.com>
Signed-off-by: Vijaikumar M <vmallika@redhat.com>
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Signed-off-by: Rajesh Joseph <rjoseph@redhat.com>
Signed-off-by: Joseph Fernandes <josferna@redhat.com>
Signed-off-by: Avra Sengupta <asengupt@redhat.com>
Reviewed-on: http://review.gluster.org/7128
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'libglusterfs/src/list.h')
| -rw-r--r-- | libglusterfs/src/list.h | 18 | 
1 files changed, 14 insertions, 4 deletions
diff --git a/libglusterfs/src/list.h b/libglusterfs/src/list.h index 794586e35f6..04b4047129f 100644 --- a/libglusterfs/src/list.h +++ b/libglusterfs/src/list.h @@ -45,19 +45,29 @@ list_add_tail (struct list_head *new, struct list_head *head)  } +/* This function will insert the element to the list in a order. +   Order will be based on the compare function provided as a input. +   If element to be inserted in ascending order compare should return: +    0: if both the arguments are equal +   >0: if first argument is greater than second argument +   <0: if first argument is less than second argument */  static inline void  list_add_order (struct list_head *new, struct list_head *head,                  int (*compare)(struct list_head *, struct list_head *))  { -        struct list_head *pos = head->next; +        struct list_head *pos = head->prev;          while ( pos != head ) { -                if (compare(new, pos) <= 0) +                if (compare(new, pos) >= 0)                          break; -                pos = pos->next; + +                /* Iterate the list in the reverse order. This will have +                   better efficiency if the elements are inserted in the +                   ascending order */ +                pos = pos->prev;          } -        list_add_tail(new, pos); +        list_add (new, pos);  }  static inline void  | 
