summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd.h
diff options
context:
space:
mode:
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);