mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
Add 7th lv_attr char to show the related kernel target.
Add thin volume types to lv_attr.
This commit is contained in:
parent
af71952d7a
commit
a083187168
@ -1,5 +1,6 @@
|
||||
Version 2.02.89 -
|
||||
==================================
|
||||
Add 7th lv_attr char to show the related kernel target.
|
||||
Terminate pv_attr field correctly. (2.02.86)
|
||||
Fix 'not not' typo in pvcreate man page.
|
||||
Improve man page style for fsadm, lvreduce, lvremove, lvrename, lvresize.
|
||||
|
@ -298,7 +298,7 @@ char *lv_attr_dup(struct dm_pool *mem, const struct logical_volume *lv)
|
||||
struct lvinfo info;
|
||||
char *repstr;
|
||||
|
||||
if (!(repstr = dm_pool_zalloc(mem, 7))) {
|
||||
if (!(repstr = dm_pool_zalloc(mem, 8))) {
|
||||
log_error("dm_pool_alloc failed");
|
||||
return 0;
|
||||
}
|
||||
@ -311,15 +311,22 @@ char *lv_attr_dup(struct dm_pool *mem, const struct logical_volume *lv)
|
||||
repstr[0] = 'p';
|
||||
else if (lv->status & CONVERTING)
|
||||
repstr[0] = 'c';
|
||||
/* Origin takes precedence over mirror and thin volume */
|
||||
else if (lv_is_origin(lv))
|
||||
repstr[0] = (lv_is_merging_origin(lv)) ? 'O' : 'o';
|
||||
else if (lv->status & MIRRORED)
|
||||
repstr[0] = (lv->status & LV_NOTSYNCED) ? 'M' : 'm';
|
||||
else if (lv_is_thin_volume(lv))
|
||||
repstr[0] = 'V';
|
||||
else if (lv->status & VIRTUAL)
|
||||
repstr[0] = 'v';
|
||||
/* Origin takes precedence over Mirror */
|
||||
else if (lv_is_origin(lv)) {
|
||||
repstr[0] = (lv_is_merging_origin(lv)) ? 'O' : 'o';
|
||||
}
|
||||
else if (lv->status & MIRRORED) {
|
||||
repstr[0] = (lv->status & LV_NOTSYNCED) ? 'M' : 'm';
|
||||
}else if (lv->status & MIRROR_IMAGE)
|
||||
else if (lv_is_thin_pool(lv))
|
||||
repstr[0] = 't';
|
||||
else if (lv_is_thin_pool_data(lv))
|
||||
repstr[0] = 'T';
|
||||
else if (lv_is_thin_pool_metadata(lv) || (lv->status & RAID_META))
|
||||
repstr[0] = 'e';
|
||||
else if (lv->status & MIRROR_IMAGE)
|
||||
repstr[0] = (_lv_mimage_in_sync(lv)) ? 'i' : 'I';
|
||||
else if (lv->status & MIRROR_LOG)
|
||||
repstr[0] = 'l';
|
||||
@ -370,6 +377,22 @@ char *lv_attr_dup(struct dm_pool *mem, const struct logical_volume *lv)
|
||||
repstr[4] = '-';
|
||||
repstr[5] = '-';
|
||||
}
|
||||
|
||||
if (lv_is_thin_type(lv))
|
||||
repstr[6] = 't';
|
||||
else if (lv_is_mirror_type(lv))
|
||||
repstr[6] = 'm';
|
||||
else if (lv_is_raid_type(lv))
|
||||
repstr[6] = 'r';
|
||||
else if (lv_is_cow(lv) || lv_is_origin(lv))
|
||||
repstr[6] = 's';
|
||||
else if (lv_has_unknown_segments(lv))
|
||||
repstr[6] = 'u';
|
||||
else if (lv_is_virtual(lv))
|
||||
repstr[6] = 'v';
|
||||
else
|
||||
repstr[6] = '-';
|
||||
|
||||
out:
|
||||
return repstr;
|
||||
}
|
||||
|
@ -141,6 +141,12 @@
|
||||
#define lv_is_mirrored(lv) ((lv)->status & MIRRORED ? 1 : 0)
|
||||
#define lv_is_rlog(lv) ((lv)->status & REPLICATOR_LOG ? 1 : 0)
|
||||
|
||||
#define lv_is_thin_type(lv) ((lv)->status & (THIN_POOL | THIN_VOLUME | THIN_POOL_DATA | THIN_POOL_METADATA) ? 1 : 0)
|
||||
#define lv_is_mirror_type(lv) ((lv)->status & (MIRROR_LOG | MIRROR_IMAGE | MIRRORED | PVMOVE) ? 1 : 0)
|
||||
#define lv_is_raid_type(lv) ((lv)->status & (RAID | RAID_IMAGE | RAID_META))
|
||||
|
||||
#define lv_is_virtual(lv) ((lv)->status & VIRTUAL)
|
||||
|
||||
/* Ordered list - see lv_manip.c */
|
||||
typedef enum {
|
||||
AREA_UNASSIGNED,
|
||||
|
12
man/lvs.8.in
12
man/lvs.8.in
@ -70,7 +70,9 @@ The lv_attr bits are:
|
||||
.IP 1 3
|
||||
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
|
||||
(v)irtual, mirror (i)mage, mirror (I)mage out-of-sync, mirror (l)og device,
|
||||
under (c)onversion, thin (V)olume, (t)hin pool, (T)hin pool data, thin pool
|
||||
m(e)tadata
|
||||
.IP 2 3
|
||||
Permissions: (w)riteable, (r)ead-only
|
||||
.IP 3 3
|
||||
@ -84,6 +86,14 @@ State: (a)ctive, (s)uspended, (I)nvalid snapshot, invalid (S)uspended snapshot,
|
||||
mapped (d)evice present without tables, mapped device present with (i)nactive table
|
||||
.IP 6 3
|
||||
device (o)pen
|
||||
.IP 7 3
|
||||
Target type: (m)irror, (r)aid, (s)napshot, (t)hin, (u)nknown, (v)irtual.
|
||||
This groups logical volumes related to the same kernel target together. So,
|
||||
for example, mirror images, mirror logs as well as mirrors themselves appear as
|
||||
(m) if they use the original device-mapper mirror kernel driver; whereas the raid
|
||||
equivalents using the md raid kernel driver all appear as (r).
|
||||
Snapshots using the original device-mapper driver appear as (s); whereas
|
||||
snapshots of thin volumes using the new thin provisioning driver appear as (t).
|
||||
.RE
|
||||
.TP
|
||||
.I \-\-segments
|
||||
|
Loading…
Reference in New Issue
Block a user