summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd.h
diff options
context:
space:
mode:
authorshishir gowda <sgowda@redhat.com>2013-10-09 10:42:56 +0530
committershishir gowda <sgowda@redhat.com>2013-11-15 12:37:58 +0530
commit6726c1617daeb783053a15d12189a64c27343f8c (patch)
tree915d19016df91568ce1b03a28342bb72de2d363e /xlators/mgmt/glusterd/src/glusterd.h
parent8c89a5ffc9d1a9aa6a52a915cdd988c40aececb7 (diff)
mgmt/glusterd: Store for snapshot
Introduced a new store for storing snapshot list for a given volume. $GLUSTERD_INSTALL_PATH/vols/<volname>/snap_list.info $GLUSTERD_INSTALL_PATH/vols/<volname>/snaps/ $GLUSTERD_INSTALL_PATH/vols/<volname>/snaps/<snap-name>/info <-snapshot volume info $GLUSTERD_INSTALL_PATH/vols/<volname>/snaps/<snap-name>/bricks <-snapshot volume brick dir $GLUSTERD_INSTALL_PATH/vols/<volname>/snaps/<snap-name>/bricks/<infos> <-snapshot volume brick info files store delete options TODO - $GLUSTERD_INSTALL_PATH/CG/ <-place holder for all cg's .../CG/<cg-name>/info <- per cg information placeholder Change-Id: I1f9fd8ff7cc0682d05b33965736a43dca6adb3e9 Signed-off-by: shishir gowda <sgowda@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd.h')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd.h b/xlators/mgmt/glusterd/src/glusterd.h
index 823c845c1..724618b0e 100644
--- a/xlators/mgmt/glusterd/src/glusterd.h
+++ b/xlators/mgmt/glusterd/src/glusterd.h
@@ -271,8 +271,10 @@ typedef struct glusterd_replace_brick_ glusterd_replace_brick_t;
struct glusterd_volinfo_ {
gf_lock_t lock;
char volname[GLUSTERD_MAX_VOLUME_NAME];
+ gf_boolean_t is_snap_volume;
int type;
int brick_count;
+ uint64_t snap_count;
struct list_head vol_list;
struct list_head bricks;
struct list_head snaps;
@@ -288,6 +290,7 @@ struct glusterd_volinfo_ {
gf_store_handle_t *shandle;
gf_store_handle_t *rb_shandle;
gf_store_handle_t *node_state_shandle;
+ gf_store_handle_t *snap_list_shandle;
/* Defrag/rebalance related */
glusterd_rebalance_t rebal;
@@ -336,6 +339,7 @@ struct glusterd_snap_ {
char *description;
time_t time_stamp;
gd_snap_status_t snap_status;
+ gf_store_handle_t *shandle;
};
typedef struct glusterd_snap_ glusterd_snap_t;
@@ -348,6 +352,7 @@ struct glusterd_snap_cg_ {
gd_snap_status_t cg_status;
int64_t volume_count;
struct list_head cg_list;
+ gf_store_handle_t *shandle;
glusterd_volinfo_t volumes[0];
};
@@ -397,6 +402,8 @@ enum glusterd_vol_comp_status_ {
#define GLUSTERD_CKSUM_FILE "cksum"
#define GLUSTERD_TRASH "trash"
#define GLUSTERD_NODE_STATE_FILE "node_state.info"
+#define GLUSTERD_VOL_SNAP_FILE "snap_list.info"
+#define GLUSTERD_VOL_SNAP_DIR_PREFIX "snaps"
/* definitions related to replace brick */
#define RB_CLIENT_MOUNTPOINT "rb_mount"
@@ -413,11 +420,20 @@ typedef ssize_t (*gd_serialize_t) (struct iovec outmsg, void *args);
snprintf (path, PATH_MAX, "%s/vols/%s", priv->workdir,\
volinfo->volname);
+#define GLUSTERD_GET_SNAP_DIR(path, volinfo, snap_name, priv) \
+ snprintf (path, PATH_MAX, "%s/vols/%s/snaps/%s", priv->workdir,\
+ volinfo->volname, snap_name);
+
#define GLUSTERD_GET_BRICK_DIR(path, volinfo, priv) \
snprintf (path, PATH_MAX, "%s/%s/%s/%s", priv->workdir,\
GLUSTERD_VOLUME_DIR_PREFIX, volinfo->volname, \
GLUSTERD_BRICK_INFO_DIR);
+#define GLUSTERD_GET_SNAP_BRICK_DIR(path, volinfo, snap_name, priv) \
+ snprintf (path, PATH_MAX, "%s/%s/%s/snaps/%s/%s", priv->workdir,\
+ GLUSTERD_VOLUME_DIR_PREFIX, volinfo->volname, \
+ snap_name, GLUSTERD_BRICK_INFO_DIR);
+
#define GLUSTERD_GET_NFS_DIR(path, priv) \
snprintf (path, PATH_MAX, "%s/nfs", priv->workdir);