diff options
| author | Vijaikumar M <vmallika@redhat.com> | 2014-02-14 20:01:38 +0530 | 
|---|---|---|
| committer | Rajesh Joseph <rjoseph@redhat.com> | 2014-03-03 22:58:23 -0800 | 
| commit | fe5927b6bd1ed795c9e85996e7c54c3abe36ceba (patch) | |
| tree | d69e25c323a4b57c49af8555db75ff65c9690701 /libglusterfs | |
| parent | 60d4f64cea4752f76b9495bdea255b51d09820ff (diff) | |
glusterd/snapshot: store location for snap driven changes
Currently snapshot volfiles are stored at:
<workdir>/vols/<volname>/snaps/<snapvol>
With snap driven approach we need to store the volfiles at:
<workdir>/snaps/<snapname>/<snapvol>
Change-Id: I8efdd5db29833b2b06b64a900cbb4c9b9a5d36b6
Signed-off-by: Vijaikumar M <vmallika@redhat.com>
Signed-off-by: Sachin Pandit <spandit@redhat.com>
Reviewed-on: http://review.gluster.org/7006
Reviewed-by: Avra Sengupta <asengupt@redhat.com>
Reviewed-by: Rajesh Joseph <rjoseph@redhat.com>
Tested-by: Rajesh Joseph <rjoseph@redhat.com>
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/list.h | 28 | 
1 files changed, 26 insertions, 2 deletions
diff --git a/libglusterfs/src/list.h b/libglusterfs/src/list.h index 7f3712b51..392c22ceb 100644 --- a/libglusterfs/src/list.h +++ b/libglusterfs/src/list.h @@ -1,5 +1,5 @@  /* -  Copyright (c) 2008-2012 Red Hat, Inc. <http://www.redhat.com> +  Copyright (c) 2008-2014 Red Hat, Inc. <http://www.redhat.com>    This file is part of GlusterFS.    This file is licensed to you under your choice of the GNU Lesser @@ -11,7 +11,6 @@  #ifndef _LLIST_H  #define _LLIST_H -  struct list_head {  	struct list_head *next;  	struct list_head *prev; @@ -45,6 +44,31 @@ 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->prev; + +        while ( pos != head ) { +                if (compare(new, pos) >= 0) +                        break; + +                /* 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 (new, pos); +} +  static inline void  list_del (struct list_head *old)  {  | 
