Lines Matching full:snapshot

29 static const char dm_snapshot_merge_target_name[] = "snapshot-merge";
66 * You can't use a snapshot if this is 0 (e.g. if full).
67 * A snapshot-merge target never clears this.
72 * The snapshot overflowed because of a write to the snapshot device.
73 * We don't have to invalidate the snapshot in this case, but we need
133 * => use the origin; forget about the snapshot.
214 /* Pointer back to snapshot context */
438 * snap_src - a snapshot suitable for use as a source of exception handover
439 * snap_dest - a snapshot capable of receiving exception handover.
440 * snap_merge - an existing snapshot-merge target linked to the same origin.
441 * There can be at most one snapshot-merge target. The parameter is optional.
444 * 0: NULL, NULL - first new snapshot
445 * 1: snap_src, NULL - normal snapshot
488 * On success, returns 1 if this snapshot is a handover destination,
496 /* Does snapshot need exceptions handed over to it? */ in __validate_exception_handover()
500 snap->ti->error = "Snapshot cow pairing for exception table handover failed"; in __validate_exception_handover()
512 * Non-snapshot-merge handover? in __validate_exception_handover()
518 * Do not allow more than one merging snapshot. in __validate_exception_handover()
521 snap->ti->error = "A snapshot is already merging."; in __validate_exception_handover()
527 snap->ti->error = "Snapshot exception store does not support snapshot-merge."; in __validate_exception_handover()
546 * Make a note of the snapshot and its origin so we can look it
549 * Also validate snapshot exception store handovers.
594 * Move snapshot to correct place in list according to chunk size.
1049 DMERR("Snapshot is invalid: can't merge"); in snapshot_merge_next_chunks()
1227 * Construct a snapshot mapping:
1253 ti->error = "Cannot allocate private snapshot structure"; in snapshot_ctr()
1351 /* Add snapshot to the list of snapshots for this origin */ in snapshot_ctr()
1355 ti->error = "Snapshot origin struct allocation failed"; in snapshot_ctr()
1376 ti->error = "Failed to read snapshot metadata"; in snapshot_ctr()
1380 DMWARN("Snapshot is marked invalid."); in snapshot_ctr()
1435 * Swap all snapshot context information between the two instances. in __handover_exceptions()
1474 DMERR("Cancelling snapshot handover."); in snapshot_dtr()
1481 /* Prevent further origin writes from using this snapshot. */ in snapshot_dtr()
1615 DMERR("Invalidating snapshot: Error reading/writing."); in __invalidate_snapshot()
1617 DMERR("Invalidating snapshot: Unable to allocate exception."); in __invalidate_snapshot()
1648 /* Read/write error - snapshot is unusable */ in pending_complete()
1678 * subsequent snapshot reads to this chunk will be redirected to the in pending_complete()
1680 * as the pending exception exists, neither origin writes nor snapshot in pending_complete()
1876 * Looks to see if this snapshot already has a pending exception
1981 * snapshot exceptions via do_origin; doing so would in snapshot_map()
1989 /* discard to snapshot (target_bio_nr == 0) zeroes exceptions */ in snapshot_map()
2018 * Write to snapshot - higher level takes care of RW/RO in snapshot_map()
2046 DMERR("Snapshot overflowed: Unable to allocate exception."); in snapshot_map()
2096 * A snapshot-merge target behaves like a combination of a snapshot
2097 * target and a snapshot-origin target. It only generates new
2202 DMERR("Unable to resume snapshot source until handover completes."); in snapshot_preresume()
2205 DMERR("Unable to perform snapshot handover until source is suspended."); in snapshot_preresume()
2294 * Handover exceptions from existing snapshot. in snapshot_merge_resume()
2299 * snapshot-merge acts as an origin, so set ti->max_io_len in snapshot_merge_resume()
2440 * Don't make new exceptions in a merging snapshot in __origin_write()
2446 /* Nothing to do if writing beyond end of snapshot */ in __origin_write()
2468 * remapped in this snapshot and trigger an exception in __origin_write()
2574 * The chunk size of the merging snapshot may be larger than the chunk
2575 * size of some other snapshot so we may need to reallocate multiple
2733 .name = "snapshot-origin",
2746 .name = "snapshot",
2853 MODULE_DESCRIPTION(DM_NAME " snapshot target");
2856 MODULE_ALIAS("dm-snapshot-origin");
2857 MODULE_ALIAS("dm-snapshot-merge");