else if (lv->status & VIRTUAL)
repstr[0] = 'v';
/* Origin takes precedence over Mirror */
- else if (lv_is_origin(lv))
- repstr[0] = 'o';
+ else if (lv_is_origin(lv)) {
+ if (lv->merging_snapshot)
+ repstr[0] = 'O';
+ else
+ repstr[0] = 'o';
+ }
else if (lv->status & MIRRORED) {
if (lv->status & MIRROR_NOTSYNCED)
repstr[0] = 'M';
repstr[0] = 'I';
else if (lv->status & MIRROR_LOG)
repstr[0] = 'l';
- else if (lv_is_cow(lv))
- repstr[0] = 's';
- else
+ else if (lv_is_cow(lv)) {
+ if (find_cow(lv)->status & SNAPSHOT_MERGE)
+ repstr[0] = 'S';
+ else
+ repstr[0] = 's';
+ } else
repstr[0] = '-';
if (lv->status & PVMOVE)
The lv_attr bits are:
.RS
.IP 1 3
-Volume type: (m)irrored, (M)irrored without initial sync, (o)rigin, (p)vmove,
-(s)napshot, invalid (S)napshot, (v)irtual, mirror (i)mage, mirror (I)mage
-out-of-sync, under (c)onversion
+Volume type: (m)irrored, (M)irrored without initial sync, (o)rigin,
+(O)rigin with merging snapshot, (s)napshot, merging (S)napshot, (p)vmove,
+(v)irtual, mirror (i)mage, mirror (I)mage out-of-sync, under (c)onversion
.IP 2 3
Permissions: (w)riteable, (r)ead-only
.IP 3 3