diff options
author | Mike Snitzer <snitzer@redhat.com> | 2010-10-13 21:26:37 +0000 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2010-10-13 21:26:37 +0000 |
commit | 9443b5d4cda01b4ec0fc80c505680d43c0e52af7 (patch) | |
tree | 811cf1c38258fdd36dc7ecd09f7e1cc522b121b1 /lib/snapshot/snapshot.c | |
parent | 336d41d685d8b7199b149972416ac655a7f7177c (diff) | |
download | lvm2-9443b5d4cda01b4ec0fc80c505680d43c0e52af7.tar.gz lvm2-9443b5d4cda01b4ec0fc80c505680d43c0e52af7.tar.xz lvm2-9443b5d4cda01b4ec0fc80c505680d43c0e52af7.zip |
Convey need for snapshot-merge target in lvconvert error message and man
page.
Add ->target_name to segtype_handler to allow a more specific target
name to be returned based on the state of the segment.
Result of trying to merge a snapshot using a kernel that doesn't have
the snapshot-merge target:
Before:
# lvconvert --merge vg/snap
Can't expand LV lv: snapshot target support missing from kernel?
Failed to suspend origin lv
After:
# lvconvert --merge vg/snap
Can't process LV lv: snapshot-merge target support missing from kernel?
Failed to suspend origin lv
Unable to merge LV "snap" into it's origin.
Diffstat (limited to 'lib/snapshot/snapshot.c')
-rw-r--r-- | lib/snapshot/snapshot.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/snapshot/snapshot.c b/lib/snapshot/snapshot.c index 92f89111..30e78d47 100644 --- a/lib/snapshot/snapshot.c +++ b/lib/snapshot/snapshot.c @@ -28,6 +28,14 @@ static const char *_snap_name(const struct lv_segment *seg) return seg->segtype->name; } +static const char *_snap_target_name(const struct lv_segment *seg) +{ + if (seg->status & MERGING) + return "snapshot-merge"; + + return _snap_name(seg); +} + static int _snap_text_import(struct lv_segment *seg, const struct config_node *sn, struct dm_hash_table *pv_hash __attribute__((unused))) { @@ -217,6 +225,7 @@ static void _snap_destroy(const struct segment_type *segtype) static struct segtype_handler _snapshot_ops = { .name = _snap_name, + .target_name = _snap_target_name, .text_import = _snap_text_import, .text_export = _snap_text_export, .target_status_compatible = _snap_target_status_compatible, |