Skip to contentSkip to conversation

Add lv_is_internal() to check internal LVs

PATCH New Jun'ichi Nomura 1 participant 2 messages Aug 9, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Add lv_is_internal() to check internal LVs

Internal LVs ("snapshotX", mirror logs and mimages) should not be directly manipulated from commands.

Currently, it's allowed in some places, though.

# lvs -a
  LV               VG     Attr   LSize Origin Snap%  Move Log        Copy% 
  lvol0            testvg -wi-a- 4.00M                                     
  lvol2            testvg mwi-a- 4.00M                    lvol2_mlog 100.00
  [lvol2_mimage_0] testvg iwi-ao 4.00M                                     
  [lvol2_mimage_1] testvg iwi-ao 4.00M                                     
  [lvol2_mlog]     testvg lwi-ao 4.00M          
# lvresize -l+1 testvg/lvol2_mimage_1
  Extending logical volume lvol2_mimage_1 to 8.00 MB
# lvconvert -s testvg/lvol2_mimage_1 testvg/lvol0
  Logical volume lvol0 converted to snapshot.
# lvrename testvg/snapshot0 testvg/s
  Renamed "snapshot0" to "s" in volume group "testvg"
# lvconvert -m1 testvg/s
  Logical volume s converted.

Until the stacking of LVs are properly supported, it's safer to disable them.

Attached patch adds lv_is_internal() to check internal LVs. lv_is_visible() returns true for "snapshotX" so it can't directly usable for this purpose.

Thanks,

Signature · 8 lines
Jun'ichi Nomura, NEC Corporation of America
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lvm2-add-lv_is_internal.patch
Type: text/x-patch
Size: 3164 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/lvm-devel/attachments/20070809/eebfd8c3/attachment.bin>
#1 lore raw

PATCH 1/1 Add lv_is_internal() to check internal LVs

Quoted 3 lines · Jun'ichi Nomura

Attached patch adds lv_is_internal() to check internal LVs. lv_is_visible() returns true for "snapshotX" so it can't directly usable for this purpose.

Oops, sorry. I posted a wrong patch.

Review

Quoted 7 lines
(quoted diff) +7 -0
+int lv_is_internal(const struct logical_volume *lv)
+{
+	if (lv->status & SNAPSHOT)
+		return 0;
+
+	return lv_is_visible(lv);
+}

The return value is apparently inverted here.
Internal LVs are either:
- snapshot (i.e. "snapshotX")
- not visible

Resending the correct patch.

Thanks,

Signature · 8 lines
Jun'ichi Nomura, NEC Corporation of America
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lvm2-add-lv_is_internal.patch
Type: text/x-patch
Size: 3163 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/lvm-devel/attachments/20070809/1c493535/attachment.bin>