Remove orphaned snapshots first if disk space is low.
[dss.git] / snap.h
diff --git a/snap.h b/snap.h
index afac5e9554ab6eae991e796bbf386bddb82d8540..eca484a462b6d3ad77c23d75d5b0518058dd5057 100644 (file)
--- a/snap.h
+++ b/snap.h
@@ -4,22 +4,22 @@
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
 
-/** The state of snapshot creation. */
-enum {
+/** The possible states for snapshot creation/removal. */
+enum hook_status {
        /** We are ready to take the next snapshot. */
-       SCS_READY,
-       /** The pre-creation hook has been started. */
-       SCS_PRE_HOOK_RUNNING,
-       /** The pre-creation hook exited successfully. */
-       SCS_PRE_HOOK_SUCCESS,
-       /** The rsync process is running. */
-       SCS_RSYNC_RUNNING,
-       /** The rsync process exited successfully. */
-       SCS_RSYNC_SUCCESS,
-       /** The rsync process needs to be restarted. */
-       SCS_RSYNC_NEEDS_RESTART,
-       /** The post-create hook has been started. */
-       SCS_POST_HOOK_RUNNING,
+       HS_READY,
+       /** The pre-create/pre-remove hook has been started. */
+       HS_PRE_RUNNING,
+       /** The pre-create/pre-remove hook exited successfully. */
+       HS_PRE_SUCCESS,
+       /** The rsync/rm process is running. */
+       HS_RUNNING,
+       /** The rsync/rm process exited successfully. */
+       HS_SUCCESS,
+       /** The rsync/rm process needs to be restarted. */
+       HS_NEEDS_RESTART,
+       /** The post-create/post-remove hook has been started. */
+       HS_POST_RUNNING,
 };
 
 /**
@@ -98,3 +98,13 @@ _static_inline_ struct snapshot *get_oldest_snapshot(struct snapshot_list *sl)
                return NULL;
        return sl->snapshots[0];
 }
+
+/**
+ * Get the newest snapshot in a snapshot list.
+ */
+_static_inline_ struct snapshot *get_newest_snapshot(struct snapshot_list *sl)
+{
+       if (!sl->num_snapshots)
+               return NULL;
+       return sl->snapshots[sl->num_snapshots - 1];
+}