diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd.h')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.h | 16 |
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); |